使用 XSLT 将一个 XML 文件拆分为多个 XML 文件 [英] Split one XML file to multiple XML File with XSLT

查看:43
本文介绍了使用 XSLT 将一个 XML 文件拆分为多个 XML 文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在下面的一个文件中有这个 XML

I have this XML in one file below

<?xml version="1.0" encoding="utf-8"?>
<document>
  <file> <!--File1.xml-->
    <content>content file 1</content>
  </file>
  <file> <!--File2.xml-->
    <content>content file 2</content>
  </file>
  <file> <!--File3.xml-->
    <content>content file 3</content>
  </file>
</document>

如何编写一个 XSLT 来将其分解为多个文件,如下所示

How do I write an XSLT to break it to multiple files like below

File1.xml
<?xml version="1.0" encoding="utf-8"?>
<document>
  <file>
    <content>content file 1</content>
  </file>
</document>

File2.xml
<?xml version="1.0" encoding="utf-8"?>
<document>
  <file> 
    <content>content file 2</content>
  </file>
</document>

等等.

感谢您的帮助.

推荐答案

使用 XSL 2.0:

With XSL 2.0:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="/">
        <xsl:for-each select="document/file">
            <xsl:result-document href="file{position()}.xml">
                <document>
                    <xsl:copy-of select="current()"/>
                </document>
            </xsl:result-document>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

我使用支持 XSLT 2.0 的 Saxon 进行了测试,使用以下命令:

I tested this using Saxon, which supports XSLT 2.0, using the command below:

java -jar saxon9.jar -xsl:transform.xsl -s:input.xml

此命令生成三个文件:file1.xmlfile2.xmlfile3.xml.

This command generates three files: file1.xml, file2.xml and file3.xml.

$ cat file1.xml
<?xml version="1.0" encoding="UTF-8"?>
<document>
   <file> <!--File1.xml-->
    <content>content file 1</content>
  </file>
</document>

这篇关于使用 XSLT 将一个 XML 文件拆分为多个 XML 文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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