我有一些XML,我需要查询所有<USER>
个节点,特别是如果<userID>
值都相同的话。我想检查的节点是userID。在下面的示例中,请注意2 <userID>
值不同,因此我希望XPath评估的结果为false。
示例XML:
<xml>
<CHANGE_USER_001>
<USER>
<userID>joebloggs</userID>
</USER>
</CHANGE_USER_001>
<CHANGE_USER_001>
<USER>
<userID>joebloggs1</userID>
</USER>
</CHANGE_USER_001>
</xml>
我对xpath命令的尝试是
//USER/userID='joebloggs'
查询返回true,但我想针对每个<userID>
节点进行测试。
如果无法返回布尔值,那么我可以得到<userID>
个节点的数量,然后得到<userID>
行的数量等于我的特定值,然后比较它们,但是如何检查所有<userID>
个节点是否有相同的值?
答案 0 :(得分:2)
这个xpath,
not(//userID != //userID)
,当至少一个false
与整个文档中的任何其他userID
不同时,返回userID
。当所有true
都相同时,它会返回userID
。
!=
运算符返回true
如果表达式右侧的项目至少有1个值与左侧的至少一个项目不匹配,否则它返回false
。