给定xml代码
<z>
<f hit="1">
<g>hola1</g>
</f>
<f hit="2">
<g>hola2</g>
</f>
<f hit="3">
<g>hola1</g>
</f>
</z>
我想要xml输出
<z>
hola1
hola2
</z>
使用 xslt1。然后,一个简单的解决方案是 muenchian 分组
<xsl:key name="thisone" match="/z/f/g" use="." />
<z>
<xsl:for-each select="/z/f[generate-id(g)=generate-id(key('thisone',g)[1])]">
<xsl:value-of select="g" />
</xsl:for-each>
</z>
但是,当我将其应用于大型数据集时,系统(firefox)一直在思考。我认为这是由于数据集非常大。但是,“g”的不同值的数量确实很少。
我的问题是:有没有办法对 Muenchian 分组的节点进行 for-each 循环?就像是
<xsl:for-each select="nodes_of_key('thisone')">
这将避免比较所有“g”节点的所有值,这需要永远?
谢谢