XSLT 输出不符合预期 [英] XSLT output not as expected

查看:48
本文介绍了XSLT 输出不符合预期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要删除父 xml 节点并在节点内复制整个 xml.我已经写了一个 xslt 代码,但是,它没有按预期工作.

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.

输入 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 中你可以使用

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>

这篇关于XSLT 输出不符合预期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆