用HtmlAgilityPack计算特定的子节点 [英] Count specific child nodes with HtmlAgilityPack

查看:124
本文介绍了用HtmlAgilityPack计算特定的子节点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想选择所有 li

I have lot of trouble with this XPath selction that i use in HtmlAgilityPack.

我在使用HtmlAgilityPack的XPath选择方面遇到了很多麻烦。嵌套在另一个 li 巫婆有 a 标签的元素(如果它们存在) = menuItem2
这是html样本:

I want to select all li elements (if they exist) nested in another li witch have a tag with id="menuItem2". This is html sample:

<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 时,它会得到我想要的 a 标记,但我需要他

this is XPath that i been using. When i lose this part /ul/li, it gets me the a tag that I wanted, but i need his descendants... This XPath always returns null.

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


推荐答案

以下XPath应该可以工作。

The following XPath should work.

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

这篇关于用HtmlAgilityPack计算特定的子节点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆