代码之家  ›  专栏  ›  技术社区  ›  Carmine Paolino

在xpath中选择相同的属性,返回结果,不重复

  •  0
  • Carmine Paolino  · 技术社区  · 16 年前

    我有一个这样的XML文档:

    <wii>
      <game>
        <type genre="arcade" />
        <type genre="sport" />
      </game>
      <game>
        <type genre="platform" />
        <type genre="arcade" />
      </game>
    </wii>
    

    如何只使用xpath列出所有类型而不重复?

    谢谢。

    2 回复  |  直到 15 年前
        1
  •  5
  •   Tomalak    16 年前
    /wii/game/type/@genre[not(. = preceding::type/@genre)]
    

    在纯英语中,它选择任何 @genre 没有相等值的属性节点 @流派 文档前一部分中的节点。

    平等 = 运算符,当给定一个普通值和一个节点集时,它将普通值与 每个节点 在节点集中,返回 true 仅当所有节点匹配时( 注意 != 不这样做,它只与集合的第一个节点比较! )结果必须用否定 not() .

        2
  •  0
  •   Martin Owen    16 年前

    您尝试过distinct-values()函数吗?

    distinct-values(//type/@genre)
    

    如果你不能使用这个功能,显然没有用。

    Here's a link 只使用xpath的方法。