Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用XSLT处理输入XML中引用的XML文件?_Xml_Xslt_Reference_Include - Fatal编程技术网

如何使用XSLT处理输入XML中引用的XML文件?

如何使用XSLT处理输入XML中引用的XML文件?,xml,xslt,reference,include,Xml,Xslt,Reference,Include,假设我的输入XML文件中有一个指向另一个XML文件的引用(URL)。我想处理这个引用的XML文件,就好像它是我的样式表/模板的输入一样。我该怎么做? <xsl:copy-of select="document('document.xml')/rootnode/subnode" /> <xsl:copy-of select="document('http://example.com/document.xml')/rootnode/subnode" /> 使用标准XSLT函

假设我的输入XML文件中有一个指向另一个XML文件的引用(URL)。我想处理这个引用的XML文件,就好像它是我的样式表/模板的输入一样。我该怎么做?


<xsl:copy-of select="document('document.xml')/rootnode/subnode" />
<xsl:copy-of select="document('http://example.com/document.xml')/rootnode/subnode" />

使用标准XSLT函数,如下所示:

<xsl:template match="someElementContainingURL">
 <xsl:apply-templates select="document(string(.))" mode="doc2"/>
</xsl:template>

在上面的示例中,我们假设在源XML文档中,名为
someElementContainingURL
的元素(用特定XML文档中的实际元素名称替换)包含要处理的第二个文档的URL


在模板匹配
someElementContainingURL
中,当将当前节点的字符串值作为参数传递时,我们将模板应用于
document()
函数的结果。最好以不同的模式组织第二个文档的处理,以便两个文档中相同的节点名称和节点类型可以由不同的模板处理,避免冲突。

使用标准XSLT函数,如下所示:

<xsl:template match="someElementContainingURL">
 <xsl:apply-templates select="document(string(.))" mode="doc2"/>
</xsl:template>

在上面的示例中,我们假设在源XML文档中,名为
someElementContainingURL
的元素(用特定XML文档中的实际元素名称替换)包含要处理的第二个文档的URL


在模板匹配
someElementContainingURL
中,当将当前节点的字符串值作为参数传递时,我们将模板应用于
document()
函数的结果。最好以不同的模式组织第二个文档的处理,以便两个文档中相同的节点名称和节点类型可以用不同的模板处理,避免冲突。

好问题,+1。请参阅我的答案,以获得一个简单而标准的解决方案。好问题,+1。请参阅我的答案,以获得简单而标准的解决方案。