我想如何正确使用XPath中的“not”。我似乎无法让它与属性一起工作。
说我有这个表达式://*[@name = 'Bob']
它是有效的,并将返回名称属性等于'Bob'的所有节点。
现在,如果我想要名称属性不等于'Bob'的所有节点,我需要使用XPath,例如://*[@name not(='Bob')]
,但这是无效的。
我尝试了多种组合,其中not()被放置在不同的顺序中,但我似乎无法让它工作。有人可以告诉我如何正确使用not()吗?
此外,使用元素而不是属性时订单是否会更改?例如://name[text() = 'Bob']
谢谢! :)
答案 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')]
应该兼顾。