我在一个小脚本中使用Perl的XML :: XPath包。我很确定我有一个xpath问题,而不是特定于该软件包的东西。
我的测试数据如下:
<stuff>
<things>
<thing>
<widgets>
<widget>
<junk>
<value>0</value>
</junk>
</widget>
<widget>
<junk>
<value>9.0</value>
</junk>
</widget>
</widgets>
</thing>
</things>
</stuff>
我正在使用的表达式是:
//thing[count(number(widgets/widget/junk/value/text())=0)=0]
当我运行它时,它失败并显示“count:参数必须是NodeSet”。
答案 0 :(得分:0)
count()
中的以下代码返回一个不是节点的布尔值:
number(widgets/widget/junk/value/text())=0
XPath 1.0中不允许这样做
如果您想选择<thing/>
元素,其中包含值{0}的<value/>
元素,您可以使用:
//thing[not(
widgets/widget/junk/value[number(text())=0]
)]