1

我需要将 4 个 xml 文件合并为一个。它们如下所示。 文件 1

<doc1>
....
<doc1>

文件 2

<doc2>
....
<doc2>

文件 3

<doc3>
....
<doc3>

文件 4

<doc4>
....
<doc4>

我想要输出如下

<doc1>
....

<doc2>
....
</doc2>


<doc3>
....
</doc3>


<doc4>
....
</doc4>
</doc1>

我做了如下。

<xsl:transform version="2.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
      <xsl:copy-of select="document('doc1.xml')"/>
      <xsl:copy-of select="document('doc2.xml')"/>
      <xsl:copy-of select="document('doc3.xml')"/>
      <xsl:copy-of select="document('doc4.xml')"/>
  </xsl:template>
</xsl:transform>

但我得到的输出如下

<doc1>
....
</doc1>


<doc2>
....
</doc2>


<doc3>
....
</doc3>


<doc4>
....
</doc4>

是否可以更改我的脚本并得到我想要的?

4

1 回答 1

0

这种转换产生了想要的结果:

<xsl:transform version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:template match="/">
          <xsl:for-each select="document('doc1.xml')/*">
            <xsl:copy>
             <xsl:copy-of select="@*|node()"/>

             <xsl:copy-of select="document('doc2.xml')"/>
             <xsl:copy-of select="document('doc3.xml')"/>
             <xsl:copy-of select="document('doc4.xml')"/>
            </xsl:copy>
          </xsl:for-each>
      </xsl:template>
</xsl:transform>
于 2012-07-06T04:06:15.823 回答