在XPath中使用not()

dev*_*per 22 xpath

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

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

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

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

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

谢谢!:)

mat*_*ieu 24

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

//*[@name != 'Bob']
Run Code Online (Sandbox Code Playgroud)

  • @mathieu:我最好引用规范(不是MS文档),来自http://www.w3.org/TR/xpath/#booleans*"如果要比较的一个对象是节点集而另一个是一个字符串,当且仅当节点集中有一个节点使得对节点的字符串值和另一个字符串执行比较的结果为真时,比较才为真"* (4认同)

Doc*_*own 5

尝试

 //*[@name != 'Bob']
Run Code Online (Sandbox Code Playgroud)

要么

  //*[not(@name = 'Bob')]
Run Code Online (Sandbox Code Playgroud)

应该兼顾.