【发布时间】:2018-09-12 16:30:21
【问题描述】:
我有一个包含其他 XML 文件路径的 XML 文件,例如:
<PATH>InsertPathHere</PATH>
<PATH>InsertPathHere</PATH>
有没有办法“打开”XML 文件并使用 XSLT 使用它们的数据? 我想获取单独文件中的数据并将它们与 XSLT 一起使用。
【问题讨论】:
我有一个包含其他 XML 文件路径的 XML 文件,例如:
<PATH>InsertPathHere</PATH>
<PATH>InsertPathHere</PATH>
有没有办法“打开”XML 文件并使用 XSLT 使用它们的数据? 我想获取单独文件中的数据并将它们与 XSLT 一起使用。
【问题讨论】:
对于像这样的 XML 文件
<?xml version='1.0' encoding='utf-8'?>
<root>
<PATH>InsertPath1Here.xml</PATH>
<PATH>InsertPath2Here.xml</PATH>
</root>
以及像InsertPath1Here.xml这样的辅助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>
【讨论】: