【发布时间】:2021-04-20 01:27:15
【问题描述】:
我需要将 XML 转换为另一个更改命名空间的 xml。我需要在根元素中添加命名空间。 输入 XML:-
<?xml version="1.0" encoding="UTF-8"?>
<ZMM_Data>
<IDOC BEGIN="1">
<EDI_DC40 SEGMENT="1">
<DIRECT>3</DIRECT>
</EDI_DC40>
<Z1ZMM_B SEGMENT="1">
<BOOKNO>2000456</BOOKNO>
</Z1ZMM_B>
</IDOC>
</ZMM_Data>
我需要如下预期的输出 XML:-
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ZMM_Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<IDOC BEGIN="1">
<EDI_DC40 SEGMENT="1">
<DIRECT>3</DIRECT>
</EDI_DC40>
<Z1ZMM_B SEGMENT="1">
<BOOKNO>2000456</BOOKNO>
</Z1ZMM_B>
</IDOC>
</ZMM_Data>
我在 XSLT 下尝试过,但没有得到想要的结果:-
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output version="1.0" encoding="UTF-8" standalone="no"/>
<xsl:template match="/*">
<xsl:element name="{local-name()}" namespace="http://www.w3.org/2001/XMLSchema-instance">
<xsl:copy-of select="./*" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
但退出为:-
<?xml version="1.0" encoding="UTF-8"?>
<ZMM_Data xmlns="http://www.w3.org/2001/XMLSchema-instance">
<IDOC xmlns="" BEGIN="1">
<EDI_DC40 SEGMENT="1">
<DIRECT>3</DIRECT>
</EDI_DC40>
<Z1ZMM_B SEGMENT="1">
<BOOKNO>2000456</BOOKNO>
</Z1ZMM_B>
</IDOC>
</ZMM_Data>
【问题讨论】: