HtmlAgilityPack을 사용하여 특정 하위 노드 수 계산

c# html html-agility-pack xpath

문제

HtmlAgilityPack에서 사용하는 XPath 선택에 많은 문제가 있습니다.

다른 li 마녀에 중첩 된 모든 li 요소 (존재하는 경우)를 선택하려면 id="menuItem2" 태그가 있어야 a . 이것은 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>

이것은 내가 사용하고있는 XPath입니다. 나는이 부분을 잃을 때 /ul/li , 그것은 나에게 도착 내가 원하는 태그, 난 그의 후손이 필요하지만 ...이 XPath는 항상 null를 돌려줍니다. a

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

인기 답변

다음 XPath가 작동해야합니다.

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



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.