Xpath,count属性为null的节点
问题描述:
我有以下XML。Xpath,count属性为null的节点
<root>
<a>
</a>
<a b="ar34" >
</a>
<a c="utr45">
</a>
</root>
我想做计数属性“b”不存在。 我使用以下,但没有得到计数
count(//*[string-length(a/@b) = 0]
我怎样才能做到这一点?由于
答
count(//a[not(@b)])
这里有一个详细的解释:
- 你想算什么?
<a>
标签。所以你开始count(a)
- 这些在哪里
<a>
标签?文件中的所有地方。那么count(//a)
那就是了。 - 但是你要过滤掉一些
<a>
标签,所以你必须使用一个谓词(在方括号中的比特):count(//a[ ... ])
- 你要只计算那些没有
@b
属性标记,所以你把not(@b)
在谓词中。 (你可以做到这一点,因为attribute interpreted as a boolean是真,如果存在该属性和虚假如果它不是。)
计数(//一个[未(@b)]) – biziclop 2012-03-16 21:55:27