所以给这个XML ......
<?xml version="1.0" encoding="UTF-8"?>
<root>
<tree dah="false">
<tree dah="false">
<tree dah="false"/>
<tree dah="false"/>
</tree>
<tree dah="false">
<tree dah="true"/>
<tree dah="false"/>
</tree>
</tree>
</root>
...我需要一个评估为true的XPath,因为至少有一棵树/ @ dah ='true'。
但如果XML看起来像这样,那将会评估为假...
<?xml version="1.0" encoding="UTF-8"?>
<root>
<tree dah="false">
<tree dah="false">
<tree dah="false"/>
<tree dah="false"/>
</tree>
<tree dah="false">
<tree dah="false"/>
<tree dah="false"/>
</tree>
</tree>
</root>
此外,树节点可以是任何深度。我的例子中有三个级别,但它可以更深入。
答案 0 :(得分:2)
使用强>:
boolean(/root//tree[@dah='true'])
或
boolean((/root//tree[@dah='true'])[1])
两个表达式都是等价的,但第二个表达式对于哑(非优化)XPath引擎会更有效。
结果 true()
如果XML文档中存在 tree
元素 {{ 1}} 带值的属性'true' - 否则结果为dah
。
答案 1 :(得分:1)
/root//tree[@dah='true']