Compter des nœuds enfants spécifiques avec HtmlAgilityPack

c# html html-agility-pack xpath

Question

J'ai beaucoup de problèmes avec cette sélection XPath que j'utilise dans HtmlAgilityPack.

Je veux sélectionner tous les éléments li (s'ils existent) imbriqués dans un autre li ayant a balise avec id="menuItem2" . Voici un exemple html:

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

c'est XPath que j'utilise. Quand je perds cette partie /ul/li , il me fait l' a tag que je voulais, mais j'ai besoin de ses descendants ... Cette XPath retourne toujours null.

string xpathExp = "//a[@id='" + parentIdHtml + "']/ul/li";
HtmlNodeCollection liNodes = htmlDoc.DocumentNode.SelectNodes(xpathExp);

Réponse populaire

Le XPath suivant devrait fonctionner.

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


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi