我有以下风格的XML
<Animals>
<Dog>
<Name>Clifford</Name>
<LikesFetch>Yes</LikesFetch>
...
<Colour>Red</Colour>
</Dog>
...
<Cat>
<Name>Garfield</Name>
<Food>Fish</Fish>
...
<Colour>Orange</Colour>
<Cat>
...
<Bird>
...
</Bird>
</Animals>
我想使用XSLT 2.0中的xsl:result-document href =“{name} .xml”将其拆分为每种颜色的文件,所有动物都与该颜色相关联。 例如。 Red.XML
<Animals>
<Dog>
<Name>Clifford</Name>
...
<Colour>Red</Colour>
<Dog>
<Cat>
<Name>Ruby</Name>
...
<Colour>Red</Colour>
</Cat>
...
</Animals>
只有少数类型的动物(比如鸟,猫和狗)。然而,有许多不同的颜色,所以它们不能被硬编码。
答案 0 :(得分:3)
标准解决方案:
<xsl:for-each-group select="Animals/*" group-by=".//Colour">
<xsl:result-document href="{current-grouping-key()}">
<animals colour="{current-grouping-key()}">
<xsl:copy-of select="current-group()"/>
</animals>
</xsl:result-document>
</xsl:for-each-group>