XSLT读取外部XML文件

时间:2018-09-12 16:30:22

标签: xml xslt

我有一个包含其他XML文件路径的XML文件,例如:

<PATH>InsertPathHere</PATH>
<PATH>InsertPathHere</PATH>

是否可以通过XSLT“打开” XML文件并使用其数据? 我想将数据保存在单独的文件中,并与XSLT一起使用。

1 个答案:

答案 0 :(得分:1)

对于类似XML的文件

<?xml version='1.0' encoding='utf-8'?>
<root>
  <PATH>InsertPath1Here.xml</PATH>
  <PATH>InsertPath2Here.xml</PATH>
</root>

以及辅助XML文件,例如InsertPath1Here.xml

<data>
    <value name="Value1">ABC</value>
</data>

InsertPath2Here.xml

<data>
    <value name="Value2">DEF</value>
</data>

您可以像这样使用XSLT文件:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>

  <xsl:template match="/root">
    <xsl:for-each select="document(PATH)">
        <xsl:copy-of select="data" />
    </xsl:for-each>
  </xsl:template>

</xsl:stylesheet>

  

                     

这将创建(正确的)输出:

<data>
    <value name="Value1">ABC</value>
</data>
<data>
    <value name="Value2">DEF</value>
</data>