在XPath中使用not()

时间:2010-08-05 19:33:41

标签: xpath

我想如何正确使用XPath中的“not”。我似乎无法让它与属性一起工作。

说我有这个表达式://*[@name = 'Bob']它是有效的,并将返回名称属性等于'Bob'的所有节点。

现在,如果我想要名称属性不等于'Bob'的所有节点,我需要使用XPath,例如://*[@name not(='Bob')],但这是无效的。

我尝试了多种组合,其中not()被放置在不同的顺序中,但我似乎无法让它工作。有人可以告诉我如何正确使用not()吗?

此外,使用元素而不是属性时订单是否会更改?例如://name[text() = 'Bob']

谢谢! :)

3 个答案:

答案 0 :(得分:23)

根据:http://msdn.microsoft.com/en-us/library/ms256086.aspx,你试过吗

//*[@name != 'Bob']

答案 1 :(得分:6)

//*[@name and @name != 'Bob']

答案 2 :(得分:5)

尝试

 //*[@name != 'Bob']

  //*[not(@name = 'Bob')]

应该兼顾。