有人能帮我吗?
这是我的 XML -
<grandparent>
<parent>
<child>apple</child>
</parent>
<parent>
<child>apple</child>
<child>orange</child>
<child>apple</child>
<child>apple</child>
<child>apple</child>
</parent>
<parent>
<child>pear</child>
<child>apple</child>
<child>pear</child>
<child>pear</child>
</parent>
</granparent>
我有一个模板,我将 parent 传递给它,它会吐出所有子标签,但我希望它只吐出唯一的子值。
我进行了搜索,每个人使用密钥的建议似乎都不起作用,因为它似乎只能获得祖父母范围内的唯一值,而不是父母范围内的唯一值。
这就是我所拥有的——
<xsl:template name="uniqueChildren">
<xsl:param name="parent" />
<xsl:for-each select="$parent/child">
<xsl:value-of select="." />
</xsl:for-each>
</xsl:template>
目前显示——
apple
apple orange apple apple apple
pear apple pear pear
我尝试按键时的代码 -
<xsl:key name="children" match="child" use="." />
<xsl:template name="uniqueChildren">
<xsl:param name="parent" />
<xsl:for-each select="$parent/child[generate-id() = generate-id(key('children', .)[1])]">
<xsl:value-of select="." />
</xsl:for-each>
</xsl:template>
当我尝试使用它显示的键时 -
apple
orange
pear
我希望它显示的内容 -
apple
apple orange
pear apple