我需要删除父 xml 节点并复制节点内的整个 xml。我已经编写了一个 xslt 代码,但是它没有按预期工作。
输入 XML:
<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
<ns0:Message1>
<ns3:Response xmlns:ns3="urn:enoc.com:HTRUAE:EmployeeLeavesData_Portal">
<EmployeeLeave>
<EmployeeID>100064</EmployeeID>
<EmployeeAbsenceDays>1</EmployeeAbsenceDays>
</EmployeeLeave>
<EmployeeLeave>
<EmployeeID>100065</EmployeeID>
<EmployeeAbsenceDays>1</EmployeeAbsenceDays>
</EmployeeLeave>
</ns3:Response>
</ns0:Message1>
</ns0:Messages>
XSLT 映射:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<Response xmlns:ns3="urn:enoc.com:HTRUAE:EmployeeLeavesData_Portal">
<xsl:copy-of select="Messages/Message1/Response/EmployeeLeave" />
</Response>
</xsl:template>
</xsl:stylesheet>
我得到的输出:
<?xml version="1.0" encoding="UTF-8"?>
<Response xmlns:ns3="urn:enoc.com:HTRUAE:EmployeeLeavesData_Portal" />
预期输出:
<ns3:Response xmlns:ns3="urn:enoc.com:HTRUAE:EmployeeLeavesData_Portal">
<EmployeeLeave>
<EmployeeID>100064</EmployeeID>
<EmployeeAbsenceDays>1</EmployeeAbsenceDays>
</EmployeeLeave>
<EmployeeLeave>
<EmployeeID>100065</EmployeeID>
<EmployeeAbsenceDays>1</EmployeeAbsenceDays>
</EmployeeLeave>
</ns3:Response>
在 XSLT 2 或 3 中您可以使用
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="#all"
version="3.0">
<xsl:template match="/">
<xsl:copy-of select="//ns3:Response" copy-namespaces="no" xmlns:ns3="urn:enoc.com:HTRUAE:EmployeeLeavesData_Portal"/>
</xsl:template>
</xsl:stylesheet>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)