Вы должны определить правила шаблона для каждого узла, чтобы обрабатывать их индивидуально.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
Правило для корневого узла должно выводить новый корневой узел, поскольку для каждого XML нужен корневой узел.
<xsl:template match="/ZBE14_OEMs_ItemUpdate_IN">
<import>
<xsl:apply-templates />
</import>
</xsl:template>
Вход Record
генерирует вывод row
для импорта.
<xsl:template match="Record">
<row>
<xsl:apply-templates />
</row>
</xsl:template>
ItemMaster
копировать не следует.
<xsl:template match="ItemMaster">
<xsl:apply-templates />
</xsl:template>
Header
и Trailer
следует игнорировать.
<xsl:template match="Header|Trailer" />
Все остальное должно быть скопировано.
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Будет сгенерирован следующий вывод:
<import>
<row>
<CONO>800</CONO>
<WHLO>CA</WHLO>
<STAT>20</STAT>
<ITNO>PNA</ITNO>
<SPE3>SPE3 A</SPE3>
<FRE3>N</FRE3>
<UNNN>HAZ B</UNNN>
<HAC1/>
<HAC2/>
<ITGR>BAAEAA</ITGR>
<SPE5/>
<CSNO>123</CSNO>
<UNMS>AA</UNMS>
</row>
<row>
<CONO>800</CONO>
<WHLO>CB</WHLO>
<STAT>20</STAT>
<ITNO>PNB</ITNO>
<SPE3>SPE3 B</SPE3>
<FRE3>N</FRE3>
<UNNN>HAZ A</UNNN>
<HAC1/>
<HAC2/>
<ITGR>BAAEAA</ITGR>
<SPE5/>
<CSNO>456</CSNO>
<UNMS>BB</UNMS>
</row>
</import>