在里面
XSLT2.0
,您可以简单地执行以下操作:
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/DATA_DS">
<xsl:copy>
<xsl:copy-of select="G_REQUEST_ID"/>
<LIST_PROJECT_ERROR>
<xsl:for-each-group select="LIST_PROJECT_ERROR/PROJECT_ERROR" group-by="ERROR_PROJECT_NUMBER">
<xsl:copy>
<xsl:copy-of select="ERROR_PROJECT_NUMBER"/>
<xsl:copy-of select="current-group()/PROJECT_ERR_MSG"/>
</xsl:copy>
</xsl:for-each-group>
</LIST_PROJECT_ERROR>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
要获得问题补充部分中显示的结果,请更改:
<xsl:copy-of select="current-group()/PROJECT_ERR_MSG"/>
致:
<PROJECT_ERR_MSG>
<xsl:value-of select="current-group()/PROJECT_ERR_MSG" separator="+"/>
</PROJECT_ERR_MSG>