我有以下XML。
<root>
<a>
</a>
<a b="ar34" >
</a>
<a c="utr45">
</a>
</root>
我想进行不存在属性“b”的计数。 我使用以下但没有得到计数
count(//*[string-length(a/@b) = 0]
我怎么能这样做?感谢
答案 0 :(得分:8)
count( //a[not(@b)] )
这是一个冗长的解释:
<a>
个标签。所以你从count( a )
<a>
代码在哪里?文档中的任何地方。那么count( //a )
就是这样。<a>
标签,所以你必须使用一个谓词(方括号中的位):count( //a[ ... ] )
@b
属性的标记,因此您将not(@b)
放在谓词中。 (你可以这样做,因为attribute interpreted as a boolean如果属性存在则为真,如果属性不存在则为假。)