XPath怎么选择具有特定数量子节点的元素

admin 百科 10
XPath通过count()函数可精确筛选子元素数量为N的节点,如//p[count()=2];需避免使用count(text())或count(node())以防误统计文本或注释节点。

XPath怎么选择具有特定数量子节点的元素-第1张图片-佛山资讯网

XPath 本身不直接支持“子节点数量等于 N”的语法,但可以通过 count() 函数配合谓词([])实现。关键是要区分“子元素节点”和“所有子节点”(含文本、注释等),通常你想要的是**子元素节点数量**。

选择恰好有 N 个子元素的元素

使用 count(*) = N —— * 只匹配元素节点,忽略文本、换行、注释等:

    <li> //p[count(*) = 2]:选所有恰好包含 2 个子元素的 <p> <li> <code>//ul[count(./li) = 3]:选所有恰好包含 3 个 <li> 子元素的 <ul></ul> <li> //table[count(./tbody/tr) >= 5]:选 <tbody> 中至少有 5 行的 <code><table> <h3>注意:别误用 text() 或 <a style="color:#f60; text-decoration:underline;" title="node" href="https://www.php.cn/zt/15853.html" target="_blank">node</a>()</h3> <p><code>count(text()) 统计的是文本节点个数(比如换行、空格、实际文字都算一个节点),容易出错;count(node()) 包含所有类型子节点(元素、文本、注释、处理指令),一般不实用。

    例如:<p>\n <span>A</span>\n <em>B</em>\n</p> 中:

    标签: node 浏览器

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~