My XSL-
<xsl:template match="Identity" mode="Insureds">
X : <xsl:value-of select="X"/>
Y : <xsl:value-of select="Y"/>
</xsl:template>
My XML-
<A identity="1">
<X>P</X>
<Y>R</Y>
</A>
<A identity="2">
<X>Q</X>
<Y>R</Y>
</A>
这里只有2个循环是可能的,并且&#39; Y&#39;如果存在,它将是相同的&#39; R&#39;在两者中。
嗨,我需要使用xsl打印数据。如果有两个循环,问题在这里 它打印像
X : P
Y : R
X : Q
Y : R
但我需要如下
X : P
Q
Y : R
答案 0 :(得分:2)
听起来像你可以在XSLT 2或3中解决的分组问题(Saxon 9在Java中支持)
<xsl:template match="root">
<xsl:for-each-group select="A/*" group-by="node-name()">
<xsl:value-of select="current-grouping-key() || ' : '"/>
<xsl:for-each-group select="current-group()" group-by=".">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:for-each-group>
</xsl:for-each-group>
</xsl:template>