別の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>