这个问题太老了,无法期待答案。然而,为了其他可能偶然发现 XSLT 2.0 分组的人的利益,下面是有助于解释的 XSLT。
要求是按XSLT 2.0 为其提供功能book1
的节点中的值进行分组。<column1>
<xsl:for-each-group>
<xsl:for-each-group select="row" group-by="column1" >
分组完成后,<book>
可以使用@name
存储在 中的属性创建节点current-grouping-key()
。属性值模板,即大括号用于替换返回的值。
<book name="{current-grouping-key()}">
下一步在 中循环current-group()
以获取节点的@name
和。@code
<title>
<xsl:for-each select="current-group()">
完整的 XSLT 如下所示
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" indent="yes" />
<xsl:strip-space elements="*"/>
<xsl:template match="document">
<xsl:for-each-group select="row" group-by="column1" >
<book name="{current-grouping-key()}">
<xsl:for-each select="current-group()">
<title name="{column3}" code="{column2}" />
</xsl:for-each>
</book>
</xsl:for-each-group>
</xsl:template>
</xsl:stylesheet>
输出是
<book name="book1">
<title name="asddfr" code="00290"/>
<title name="cdcd" code="00290"/>
</book>