在XSLT中,document() 函数用于检索外部XML文档,并将其作为节点集合引入到当前转换中。这允许XSLT样式表在转换过程中使用来自其他文档的数据。

语法如下:
document(uri, base)

  •  uri: 表示外部XML文档的URI(Uniform Resource Identifier)。

  •  base: 可选参数,用于指定相对URI的基本URI。


以下是一个简单的示例,演示了如何在XSLT中使用 document() 函数:
<!-- 输入 XML -->
<root>
  <external-doc>external.xml</external-doc>
</root>

<!-- external.xml -->
<data>
  <value>42</value>
</data>

<!-- XSLT 转换 -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="root">
    <output>
      <!-- 使用 document() 函数引入外部文档 -->
      <xsl:apply-templates select="document(external-doc)/data"/>
    </output>
  </xsl:template>

  <xsl:template match="data">
    <result>
      <!-- 在外部文档的上下文中操作节点 -->
      The value from external document is: <xsl:value-of select="value"/>
    </result>
  </xsl:template>

</xsl:stylesheet>

在这个例子中,<xsl:apply-templates select="document(external-doc)/data"/> 使用 document() 函数引入了名为 "external.xml" 的外部文档,并将其作为节点集合传递给匹配 data 的模板。在模板中,我们可以在外部文档的上下文中操作节点。

请注意,使用 document() 函数需要注意安全性和性能方面的考虑。一些XSLT处理器可能对跨域请求进行限制,而且频繁使用远程文档可能会影响性能。


转载请注明出处:http://www.pingtaimeng.com/article/detail/12248/XML