Ich habe ein Problem mit XPath in C#
ich alle Elemente mit dieser Struktur finden wollen
I 10 Links haben, die alle von ihnen diese Struktur haben:
HTML XPath Suche nach Klassennamen
<div class="PartialSearchResults-item" data-zen="true">
<div class="PartialSearchResults-item-title">
<a class="PartialSearchResults-item-title-link result-link"target="_blank" href='https://www.google.com/'> Google</a>
</div>
<p class="PartialSearchResults-item-url">www.google.com</p>
<p class="PartialSearchResults-item-abstract">Search the world.</p>
</div>
Mit diesem Beispiel möchte ich beispielsweise "Google" und "www.google.com" und "Suche in der Welt" aufrufen.
var titles = hd.DocumentNode.SelectNodes("//div[contains(@class, 'PartialSearchResults-item')]");
string link;
foreach (HtmlNode node in titles){
string description = node.SelectSingleNode(".//*[contains(@class,'PartialSearchResults-item-abstract')]").InnerText;
link = node.SelectSingleNode(".//*[contains(@class,'PartialSearchResults-item-url')]").InnerText;
string title = node.SelectSingleNode(".//a[contains(@class,'PartialSearchResults-item-title-link result-link')]").InnerText;}
Aber ich bekomme Fehler NULL-Verweis
Ihre Lösung Abfrage ist, aber ich bin auch an derselben Stelle und in meinem Fall mit Klassennamen 'PartialSearchResults-Artikel stecken '(für zB.) Ich habe auch andere Klassen. also nicht in der Lage, das Ergebnis zu erhalten, indem man verwendet 'var titles = hd.DocumentNode.SelectNodes (" // div [@ class = 'PartialSearchResults-item'] ");' für die Verwendung dieser Syntax muss ich jeden Klassennamen angeben mit dem wird nicht behoben werden. – Divya