代码之家  ›  专栏  ›  技术社区  ›  Steven Wilber

xpath-“not”和“difference”!='

  •  6
  • Steven Wilber  · 技术社区  · 15 年前

    关于xpath的'not'和'='在以下内容中。

    XML:

    <years>
      <year value="2010"></year>
      <year value="2010"></year>
      <year value="2010"></year>
      <year value="2009"></year>
    </years>
    

    我想选择独特的年份。为了实现这一点,我挣扎了一段时间,但最终还是成功了,但以一种我没有预料到的奇怪的方式。

    下面的xpath符合我的意图,返回2009和2010年的两个唯一年份节点。

    years/year[not(@value = preceding-sibling::year/@value)]
    

    以下仅返回2009年节点。

    years/year[@value != preceding-sibling::year/@value]
    

    它们之间唯一的区别就是!=而不是运算符。我已经考虑了一段时间了,我找不到一个可以令人满意地向其他人解释的区别。

    也许有人能帮忙。

    干杯

    史蒂夫

    3 回复  |  直到 15 年前
        1
  •  8
  •   Max Shawabkeh    15 年前

    <year>

    not(...) @value = preceding-sibling::year/@value not

        2
  •  8
  •   Kyle Butt    15 年前

    a != b not(a = b)


    (2010 != empty set)
    not (2010 = empty set)

        3
  •  0
  •   elCapitano    15 年前