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个循环是可能的,如果存在'Y'值,则两者将与'R'相同。
嗨,我需要使用xsl打印数据。问题在这里,如果有两个循环
它打印像
X : P
Y : R
X : Q
Y : R
但我需要像下面
X : P
Q
Y : R
最佳答案
听起来像是一个分组问题,您可以使用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>
https://xsltfiddle.liberty-development.net/bFDb2BJ/1
关于java - 如何使用XSL排列数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49553786/