Xpath,count属性为null的节点

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] 

我怎样才能做到这一点?由于

+0

计数(//一个[未(@b)]) – biziclop 2012-03-16 21:55:27

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

这里有一个详细的解释:

  1. 你想算什么? <a>标签。所以你开始count(a)
  2. 这些在哪里<a>标签?文件中的所有地方。那么count(//a)那就是了。
  3. 但是你要过滤掉一些<a>标签,所以你必须使用一个谓词(在方括号中的比特):count(//a[ ... ])
  4. 你要只计算那些没有@b属性标记,所以你把not(@b)在谓词中。 (你可以做到这一点,因为attribute interpreted as a boolean是真,如果存在该属性和虚假如果它不是。)
+0

+1好的解释 – MiMo 2012-03-17 01:26:45

+0

+ 1为好解释 – JohnXsl 2012-03-17 01:56:04