Zählen Sie bestimmte untergeordnete Knoten mit HtmlAgilityPack

c# html html-agility-pack xpath

Frage

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);

Beliebte Antwort

Der folgende XPath sollte funktionieren.

string xpathExp = "//li/a[@id='" + parentIdHtml + "']/following-sibling::ul/li";


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum