XPath 不显示重复值(递归查询)
XPath do not show duplicate values (recursive query)
在我的情况下,我有一个具有递归部分 (.//) 的查询。在 XML-XSLT(使用 Xpath)的结果中,我只想看到唯一值。我与 Altova Stylevision 合作建立了这个 XSLT。
我的XML:
<Subject>
<Subject>
<L2 Name="Asset 1">
<IDR3 Name="IDR A" />
</L2>
<L2 Name="Asset 2">
<IDR3 Name="IDR B" />
</L2>
</Subject>
<Subject>
<L2 Name="Asset 3">
<IDR3 Name="IDR B" />
</L2>
<L2 Name="Asset 4">
<IDR3 Name="IDR B" />
</L2>
<Subject>
<L2 Name="Asset 5">
<IDR3 Name="IDR A" />
</L2>
<L2 Name="Asset 2">
<IDR3 Name="IDR B" />
</L2>
</Subject>
</Subject>
<Subject>
<Subject>
<Subject>
<L2 Name="Asset 7">
<IDR3 Name="IDR C" />
</L2>
<L2 Name="Asset 8">
<IDR3 Name="IDR B" />
</L2>
</Subject>
</Subject>
</Subject>
整个“主题”是一个递归部分。我希望得到以下结果:
- 印尼盾 A
- 印尼盾 B
- 印尼盾 C
我用来设置初始 XSLT 的字符串:
.//Subject/L2/IDR3/@Name
我尝试了 preceding::sibling
和 distinct-values
的多种解决方案,但我无法弄清楚这个,因为我必须处理递归性 (downwards/upwards)。我真的希望有人能帮我解决这个问题。
问候
为什么不简单:
distinct-values(//IDR3/@Name)
在我的情况下,我有一个具有递归部分 (.//) 的查询。在 XML-XSLT(使用 Xpath)的结果中,我只想看到唯一值。我与 Altova Stylevision 合作建立了这个 XSLT。
我的XML:
<Subject>
<Subject>
<L2 Name="Asset 1">
<IDR3 Name="IDR A" />
</L2>
<L2 Name="Asset 2">
<IDR3 Name="IDR B" />
</L2>
</Subject>
<Subject>
<L2 Name="Asset 3">
<IDR3 Name="IDR B" />
</L2>
<L2 Name="Asset 4">
<IDR3 Name="IDR B" />
</L2>
<Subject>
<L2 Name="Asset 5">
<IDR3 Name="IDR A" />
</L2>
<L2 Name="Asset 2">
<IDR3 Name="IDR B" />
</L2>
</Subject>
</Subject>
<Subject>
<Subject>
<Subject>
<L2 Name="Asset 7">
<IDR3 Name="IDR C" />
</L2>
<L2 Name="Asset 8">
<IDR3 Name="IDR B" />
</L2>
</Subject>
</Subject>
</Subject>
整个“主题”是一个递归部分。我希望得到以下结果:
- 印尼盾 A
- 印尼盾 B
- 印尼盾 C
我用来设置初始 XSLT 的字符串:
.//Subject/L2/IDR3/@Name
我尝试了 preceding::sibling
和 distinct-values
的多种解决方案,但我无法弄清楚这个,因为我必须处理递归性 (downwards/upwards)。我真的希望有人能帮我解决这个问题。
问候
为什么不简单:
distinct-values(//IDR3/@Name)