【问题标题】:How to use "not" in XPath?如何在 XPath 中使用“not”?
【发布时间】:2010-12-05 18:40:11
【问题描述】:

我想写一些类似的东西:

//a[not contains(@id, 'xx')]

(表示所有有'id'属性的链接不包含字符串'xx')

我找不到正确的语法。

【问题讨论】:

    标签: dom xpath xpathquery


    【解决方案1】:

    not() 是 XPath 中的一个函数(与运算符相反),所以

    //a[not(contains(@id, 'xx'))]
    

    【讨论】:

    • 有没有办法说抓住所有

      标签而不是其中的 标签?想象像

      text textTEXTtext text

      之类的东西。我想要 p 中的所有文本,但不想要 a 中的文本。 XPath 有可能吗?这不完全是我的情况,它比这更复杂一些,但它或多或少是一样的。

    【解决方案2】:

    你可以使用not(expression)函数

    expression != true()
    

    【讨论】:

      【解决方案3】:

      这些答案都不适用于 python。我解决了这个

      a[not(@id='XX')]
      

      您还可以通过| 运算符在您的xpath 中使用或条件。比如

      a[not(@id='XX')]|a[not(@class='YY')]
      

      有时我们想要没有类的元素。所以你可以这样做

      a[not(@class)]
      

      【讨论】:

        【解决方案4】:

        使用boolean function,如下所示:

        //a[(contains(@id, 'xx'))=false]
        

        【讨论】:

          猜你喜欢
          • 2012-06-16
          • 1970-01-01
          • 2016-10-11
          • 2014-03-13
          • 2013-10-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-11
          相关资源
          最近更新 更多