在XPath中选择相同的属性并返回结果而不重复

Car*_*ino 0 xml xpath

我有一个像这样的XML文档:

<wii>
  <game>
    <type genre="arcade" />
    <type genre="sport" />
  </game>
  <game>
    <type genre="platform" />
    <type genre="arcade" />
  </game>
</wii>
Run Code Online (Sandbox Code Playgroud)

如何仅使用XPath列出所有类型而不重复?

谢谢.

Tom*_*lak 5

/wii/game/type/@genre[not(. = preceding::type/@genre)]

在简单的英语中,这将选择文档前一部分中@genre没有同等值@genre节点的任何属性节点.

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