Xpath,count属性为null的节点

时间:2012-03-16 21:53:18

标签: xpath

我有以下XML。

<root>
    <a>
    </a>
    <a b="ar34" >
    </a>
    <a c="utr45">
    </a>
</root>

我想进行不存在属性“b”的计数。 我使用以下但没有得到计数

count(//*[string-length(a/@b) = 0]

我怎么能这样做?感谢

1 个答案:

答案 0 :(得分:8)

count( //a[not(@b)] )

这是一个冗长的解释:

  1. 你想算些什么? <a>个标签。所以你从count( a )
  2. 开始
  3. 这些<a>代码在哪里?文档中的任何地方。那么count( //a )就是这样。
  4. 但是你想过滤掉一些<a>标签,所以你必须使用一个谓词(方括号中的位):count( //a[ ... ] )
  5. 您只想计算那些没有@b属性的标记,因此您将not(@b)放在谓词中。 (你可以这样做,因为attribute interpreted as a boolean如果属性存在则为真,如果属性不存在则为假。)