【发布时间】:2012-11-08 00:16:01
【问题描述】:
给定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”节点的所有值,这需要很长时间?
谢谢
【问题讨论】:
标签: foreach xslt-1.0 xslt-grouping muenchian-grouping