XSLT output not as expected

老子叫甜甜 提交于 2021-02-05 09:44:07

问题


I have a requirement to remove parent xml nodes and copy entire xml inside node. I have written a xslt code it, however, it is not working as expected.

Input 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 mapping:

<?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>

Output that I am getting:

<?xml version="1.0" encoding="UTF-8"?>
<Response xmlns:ns3="urn:enoc.com:HTRUAE:EmployeeLeavesData_Portal" />

expected output:

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

回答1:


In XSLT 2 or 3 you can use

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


来源:https://stackoverflow.com/questions/65822982/xslt-output-not-as-expected

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!