<Customer>
<Order>
<item><name>ID</name><value>11111</value><item>
</Order>
<Order>
<item><name>ID</name><value>11111</value></item>
</Order>
<Order>
<item><name>ID</name><value>22222</value></item>
</Order>
<Order>
<item><name>ID</name><value>33333</value></item>
</Order>
</Customer>
<Customer>
<Order>
<item><name>ID</name><value>11111</value><item>
</Order>
<Order>
<item><name>ID</name><value>11111</value> </item>
</Order>
</Customer>
<Customer>
<Order>
<item><name>ID</name><value>22222</value></item>
</Order>
</Customer>
<Customer>
<Order>
<item><name>ID</name><value>33333</value></item>
</Order>
</Customer>
此处&lt; Customer&gt;。&lt; Order&gt;。&lt; item&gt;。&lt; value&gt;会动态地来。 请任何人根据&lt; Order&gt;在xslt中为此转换提供解决方案。&lt; item&gt;。&lt; value&gt;
答案 0 :(得分:1)
这是一个标准的分组问题。在XSLT 2.0中,使用
<xsl:template match="Customer">
<xsl:for-each-group select="Order" group-by="item/value">
<Customer>
<xsl:copy-of select="current-group()"/>
</Customer>
</xsl:for-each-group>
</xsl:template>
如果你坚持使用XSLT 1.0,那就更棘手了:查看“Muenchian Grouping”(或者Dimitre Novatchev对本论坛上的问题的回复)。