Это на самом деле мой встроенный xslt:
<xsl:element name="ns0:LineItems" >
<xsl:element name="ns0:Response" >
<xsl:for-each select="//*[local-name()='Response']//*[local-name()='ITEMS']" >
<xsl:element name="ns0:ITEMS" >
<xsl:attribute name ="LINEITEMID" >
<xsl:value-of select="*[local-name()='LINEITEMID']" />
</xsl:attribute>
<xsl:attribute name ="ITM_NUMBER" >
<xsl:value-of select="*[local-name()='ITM_NUMBER']" />
</xsl:attribute>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:element>
Мой вопрос состоит в том, как я могу создать новые узлы с тем же пространством имен из результата xml ns0:elmentname
.Когда это пространство имен изменится на ns1:elmentname
, у меня возникнет проблема.
Результат должен выглядеть следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<ns0:LineItems xmlns:ns0="http://schemas.microsoft.com/BizTalk/2003">
<ns0:Response>
<ns0:ITEMS LINEITEMID="777" ITM_NUMBER="001000" />
<ns0:ITEMS LINEITEMID="2" ITM_NUMBER="001055" />
<ns0:ITEMS LINEITEMID="3" ITM_NUMBER="001020" />
</ns0:Response>
</ns0:LineItems>
Мой ввод:
<?xml version="1.0" encoding="utf-8"?>
<Response>
<HEADER>
<ORDER_ID>1234</ORDER_ID>
</HEADER>
<E_SALESDOCUMENT>test123</E_SALESDOCUMENT>
<E_STATUS>AllesToll</E_STATUS>
<ITEMS>
<LINEITEMID>777</LINEITEMID>
<ITM_NUMBER>001000</ITM_NUMBER>
<MATERIAL>000000000000219701</MATERIAL>
</ET_ORDER_ITEMS>
<ET_ORDER_ITEMS>
<LINEITEMID>2</LINEITEMID>
<ITM_NUMBER>001055</ITM_NUMBER>
<MATERIAL>000000000000219702</MATERIAL>
</ET_ORDER_ITEMS>
<ET_ORDER_ITEMS>
<LINEITEMID>3</LINEITEMID>
<ITM_NUMBER>001020</ITM_NUMBER>
<MATERIAL>000000000000219703</MATERIAL>
</ITEMS>
</Response>