Ich habe viel Probleme mit dieser XPath-Auswahl, die ich in HtmlAgilityPack verwende.
Ich möchte alle auszuwählen li
Elemente in einer anderen (falls vorhanden) verschachtelt li
Hexe habe a
Tag mit id="menuItem2"
. Dies ist ein HTML-Beispiel:
<div id="menu">
<ul>
<li><a id="menuItem1"></a></li>
<li><a id="menuItem2"></a>
<ul>
<li><a id="menuSubItem1"></a></li>
<li><a id="menuSubItem2"></a></li>
</ul>
</li>
<li><a id="menuItem3"></a></li>
</ul>
</div>
Das ist XPath, das ich benutzt habe. Wenn ich diesen Teil /ul/li
verliere, erhält er das a
Tag, das ich wollte, aber ich brauche seine Nachkommen ... Dieser XPath gibt immer null zurück.
string xpathExp = "//a[@id='" + parentIdHtml + "']/ul/li";
HtmlNodeCollection liNodes = htmlDoc.DocumentNode.SelectNodes(xpathExp);
Der folgende XPath sollte funktionieren.
string xpathExp = "//li/a[@id='" + parentIdHtml + "']/following-sibling::ul/li";