代码之家  ›  专栏  ›  技术社区  ›  developer

在XPath中使用not()

  •  20
  • developer  · 技术社区  · 14 年前

    假设我有这样的表达: //*[@name = 'Bob']

    现在,如果希望所有节点的name属性都不等于'Bob',则需要使用XPath,例如: //*[@name not(='Bob')]

    我尝试过多种组合,not()的排列顺序不同,但似乎无法实现。有人能告诉我如何正确使用not()?

    另外,当使用元素而不是属性时,顺序会改变吗?例如: //name[text() = 'Bob']

    3 回复  |  直到 14 年前
        1
  •  27
  •   mathieu    14 年前
        2
  •  8
  •   Doc Brown    14 年前

    尝试

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

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

    两者都应该起作用。

        3
  •  6
  •   John Kugelman Michael Hodel    14 年前
    //*[@name and @name != 'Bob']