Conta i nodi figlio specifici con HtmlAgilityPack

c# html html-agility-pack xpath

Domanda

Ho molti problemi con questa selezione XPath che utilizzo in HtmlAgilityPack.

Voglio selezionare tutti gli elementi li (se esistono) nidificati in un altro li streghe hanno a tag con id="menuItem2" . Questo è un esempio 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>

questo è XPath che ho usato. Quando perdo questa parte /ul/li , mi ottiene il a tag che volevo, ma ho bisogno di suoi discendenti ... Questo XPath restituisce sempre null.

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

Risposta popolare

Il seguente XPath dovrebbe funzionare.

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



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché