如何使用xslt在目标xml中添加DOCTYPE?

如何使用xslt在目标xml中添加DOCTYPE?,xslt,Xslt,我想将源xml准确地传输到目标xml,只需在目标xml中添加DOCTYPE。 我的源XMl是: <?xml version="1.0" encoding="UTF-8" ?> <ns0:mt_socreate_ob xmlns:ns0="http://socreate"> <ZSPL00> <Empid>12</Empid> <Firstname>latif</Firstname> <

我想将源xml准确地传输到目标xml,只需在目标xml中添加DOCTYPE。 我的源XMl是:

<?xml version="1.0" encoding="UTF-8" ?> 
 <ns0:mt_socreate_ob xmlns:ns0="http://socreate">
 <ZSPL00>
  <Empid>12</Empid> 
  <Firstname>latif</Firstname> 
  <Secondname>rahman</Secondname> 
  <Dept>tata</Dept> 
  </ZSPL00>
  </ns0:mt_socreate_ob>

12
拉蒂夫
拉赫曼
塔塔

目标XML应该是

<?xml version="1.0" encoding="UTF-8" ?> 

<!DOCTYPE ZSPL00 SYSTEM "sap2grips.dtd">

   <ns0:mt_socreate_ob xmlns:ns0="http://socreate">

    <ZSPL00>

     <Empid>12</Empid>

     <Firstname>latif</Firstname>

     <Secondname>rahman</Secondname>

      <Dept>tata</Dept>

  </ZSPL00>

  </ns0:mt_socreate_ob>

12
拉蒂夫
拉赫曼
塔塔
我正在编写以下xslt代码,但没有得到期望的结果

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="no" doctype-system="sap2grips.dtd"/>

<xsl:strip-space elements="*"/>

<!-- Default: copy everything -->
<xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

</xsl:stylesheet>


请更正我的代码以获得上述结果

任何符合要求的XSLT处理器都不会生成语义不正确的
DOCTYPE
声明,因为您需要的声明是

你想要:

<!DOCTYPE ZSPL00 SYSTEM "sap2grips.dtd"> 
其中:


“文档类型声明中的
名称
必须与根元素的元素类型匹配。”

任何符合要求的XSLT处理器都不会生成语义不正确的
DOCTYPE
声明,因为您想要的声明是

你想要:

<!DOCTYPE ZSPL00 SYSTEM "sap2grips.dtd"> 
其中:


“文档类型声明中的
名称
必须与根元素的元素类型匹配。”

请发布您使用当前XSLT获得的结果。我得到的结果是:12 latif rahman tata我应该在顶部发布您使用当前XSLT获得的结果。我得到的结果是:12 latif rahman tata我应该在顶部