我有一个这样的 XML 文件
<fruits>
<fruit>
<name>banana</name>
<country>Morocco</country>
</fruit>
<fruit>
<name>orange</name>
<country>Morocco</country>
</fruit>
<fruit>
<name>grape</name>
<country>Egypt</country>
</fruit>
</fruits>
我需要以另一种方式对其进行分组:
<fruits>
<country name="Morocco">
<fruit>
<name>banana</name>
</fruit>
<fruit>
<name>orange</name>
</fruit>
</country>
<country name="Egypt">
<fruit>
<name>grape</name>
</fruit>
</country>
</fruits>
我尝试for-each-group
从 XSLT 2.0 开始,但它一点也不好:我不知道如何处理嵌套参数的分组,所以我的 .xsl 文件没有任何好处。
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" indent="yes"/>
<xsl:for-each-group select="fruits/fruit" group-by="fruits/fruit/country">
<country name="{country}">
<xsl:for-each select="current-group()">
<fruit>
<name> '{name}'/</name>
</fruit>
</xsl:for-each>
</country>
</xsl:for-each-group>
</xsl:stylesheet>