xslt-组合在元素文本上匹配的子元素
我正在尝试设计一个XSLT转换模板,它可以组合与其元素文本匹配的子元素(可以是任何内容) 示例输入XMLxslt-组合在元素文本上匹配的子元素,xslt,Xslt,我正在尝试设计一个XSLT转换模板,它可以组合与其元素文本匹配的子元素(可以是任何内容) 示例输入XML <test> <name>Alpha</name> <value>11</value> </test> <test> <name>Beta</name> <value>14</value> </test> <te
<test>
<name>Alpha</name>
<value>11</value>
</test>
<test>
<name>Beta</name>
<value>14</value>
</test>
<test>
<name>Alpha</name>
<value>22</value>
</test>
阿尔法
11
贝塔
14
阿尔法
22
我希望转换将子元素与匹配元素结合起来,这样任何名为Alpha的子元素都将在输出中分组
示例结果XML
<test>
<name>Alpha</name>
<valuelist>11,22</valuelist>
</test>
<test>
<name>Beta</name>
<valuelist>14</valuelist>
<test>
阿尔法
11,22
贝塔
14
name文本的值可以是任何内容,因此不能在模板匹配中特别注明。使用XSLT 2.0:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output indent="yes"/>
<xsl:template match="root">
<xsl:copy>
<xsl:for-each-group select="test" group-by="name">
<test>
<xsl:copy-of select="name"/>
<valuelist>
<xsl:value-of select="current-group()/value" separator=","/>
</valuelist>
</test>
</xsl:for-each-group>
</xsl:copy>
</xsl:template>
</xsl:transform>
在线样本位于。这是一个(典型的)分组问题。您可以使用像Saxon 9这样的XSLT2.0处理器吗?