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);
Le XPath suivant devrait fonctionner.
string xpathExp = "//li/a[@id='" + parentIdHtml + "']/following-sibling::ul/li";