Ich versuche, Börseninformationen mit einem einfachen Stück C # aus einem HTML-Dokument zu analysieren. Das Problem ist, dass ich die Syntax nicht verstehen kann , die tr class = "LomakeTaustaVari" wird geparst, aber wie bekomme ich das zweite Bit, das keine tr-Klasse hat?
Hier ist ein Teil des HTML, es wiederholt sich mit verschiedenen Werten.
<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>
Mein C # -Code:
{
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();
}
Versuchen Sie, den nächsten xpath //tr[preceding-sibling::tr[@class='LomakeTaustaVari']]
:
var nodes = doc.DocumentNode.SelectNodes("//tr[preceding-sibling::tr[@class='LomakeTaustaVari']]");
Es sollte Knoten mit dem vorhergehenden Knoten tr
mit der Klasse LomakeTaustaVari
.
Nur zur Information: Wenn keine Knoten gefunden wurden, gibt die SelectNodes
Methode null
.