首页 > 解决方案 > 如何使用 xslt 将一个 xml 文件的内容复制到另一个空 xml 文件

问题描述

我有 2 个 xml 文件。first.xml 中有一些元素。second.xml 文件是空的,它只有 dtd 声明。我想使用 xslt 将 first.xml 的所有节点复制到 second.xml 文件。为此,我创建了 xsl 文件。

    <?xml version="1.0"?>   

    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:param name="file1" select="document('data/first.xml')"/>

    <xsl:template match="$file1@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="$file1/)"/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

我不确定我在这里缺少什么。

first.xml 看起来像这样 -

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE TestConfig PUBLIC "xyz.dtd" "xyz.dtd">
<TestConfig debug="false" disable="false" name="moduletests">

  <BeforeTests>
  <Test name="Test Configuration" type="helthcheck"/>
  </BeforeTests>

  <Test name='Test with SSL'  type='helthcheck'>
   <AttributeToAdd>
       <Script>
        <Source>
        </Source>
       </Script>
   </AttributeToAdd>
   </Test>

   <Test name='My test'  type='create'/>
</TestConfig>

Second.xml 文件看起来像这样

 <?xml version="1.0" encoding="UTF-8"?> 
    <?xml-stylesheet type="text/xsl" href="myXSL.xsl"?>     
   <!DOCTYPE TestConfig  PUBLIC"xyz.dtd" "xyz.dtd">
   <TestConfig>
   </TestConfig>

标签: xmlxslt

解决方案


推荐阅读