J'essaie d'analyser les informations boursières avec un simple morceau de C # à partir d'un document HTML. Le problème est que je ne peux pas comprendre la syntaxe, la classe tr class = "LomakeTaustaVari" est analysée, mais comment puis-je obtenir le second bit sans classe tr?
Voici un extrait du code HTML qui se répète avec des valeurs différentes.
<tr class="LomakeTaustaVari">
<td><div class="Ensimmainen">12:09</div></td>
<td><div>MSI</div></td>
<td><div>POH</div></td>
<td><div>42</div></td>
<td><div>64,50</div></td>
</tr>
<tr>
<td><div class="Ensimmainen">12:09</div></td>
<td><div>SRE</div></td>
<td><div>POH</div></td>
<td><div>156</div></td>
<td><div>64,50</div></td>
</tr>
Mon code C #:
{
HtmlAgilityPack.HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load ("https://www.op.fi/op/henkiloasiakkaat/saastot-ja-sijoitukset/kurssit-ja-markkinat/markkinat?sivu=alltrades.html&sym=KNEBV.HSE&from=10:00&to=19:00&id=32453");
foreach (HtmlNode row in doc.DocumentNode.SelectNodes("//tr[@class='LomakeTaustaVari']"))
{
Console.WriteLine(row.InnerText);
}
Console.ReadKey();
}
Essayez d'utiliser le prochain xpath //tr[preceding-sibling::tr[@class='LomakeTaustaVari']]
:
var nodes = doc.DocumentNode.SelectNodes("//tr[preceding-sibling::tr[@class='LomakeTaustaVari']]");
Il convient de sélectionner les nœuds ayant le nœud précédent tr
avec la classe LomakeTaustaVari
.
Juste pour votre information: si aucun noeud n'a été trouvé, la méthode SelectNodes
renvoie null
.