使用xpath查询多个节点以获取特定值

时间:2016-03-08 23:30:10

标签: xml vb.net xpath

我有一些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>个节点是否有相同的值?

1 个答案:

答案 0 :(得分:2)

这个xpath, not(//userID != //userID)

,当至少一个false与整个文档中的任何其他userID不同时,返回userID。当所有true都相同时,它会返回userID

!=运算符返回true如果表达式右侧的项目至少有1个值与左侧的至少一个项目不匹配,否则它返回false