我正在尝试创建一个从另一个 xml 设置的标头详细信息 XML 文档。
源xml文档:
<items>
<item>
<col1>H</col1>
<col2>header1</col2>
</item>
<item>
<col1>D</col1>
<col2>detail1.1</col2>
</item>
<item>
<col1>D</col1>
<col2>detail1.2</col2>
</item>
<item>
<col1>H</col1>
<col2>header2</col2>
</item>
<item>
<col1>D</col1>
<col2>detail2.1</col2>
</item>
<item>
<col1>D</col1>
<col2>detail2.2</col2>
</item>
<item>
<col1>D</col1>
<col2>detail2.3</col2>
</item>
</items>
期望的输出:
<xml>
<transaction>
<items>
<item>
<col1>H</col1>
<col2>header1</col2>
</item>
<item>
<col1>D</col1>
<col2>detail1.1</col2>
</item>
<item>
<col1>D</col1>
<col2>detail1.2</col2>
</item>
</items>
</transaction>
<transaction>
<items>
<item>
<col1>H</col1>
<col2>header2</col2>
</item>
<item>
<col1>D</col1>
<col2>detail2.1</col2>
</item>
<item>
<col1>D</col1>
<col2>detail2.2</col2>
</item>
<item>
<col1>D</col1>
<col2>detail2.3</col2>
</item>
</items>
</transaction>
</xml>
我尝试的 XSLT:
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/ | node() | @* | comment() | processing-instruction()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="item[col1='H']">
<transaction>
<xsl:apply-templates/>
</transaction>
</xsl:template>
</xsl:transform>