使用xsl获取文件名

时间:2009-02-24 18:28:44

标签: xslt xslt-1.0

如何使用xsl 1.0获取文件名?

我试过

<xsl:value-of select="base-uri()" />

但得到“致命错误!无法找到功能:base-uri”

2 个答案:

答案 0 :(得分:33)

base-uri()是标准的XPath 2.0函数,因此在运行XSLT 1.0时,此函数将不可用。

在XSLT 1.0中,文件名(什么?)可以作为参数传递进行转换。

请注意,无法始终为样式表或XML文档生成文件名 - 其中一个或两个都可能驻留在没有关联文件的内存中。

从问题中不清楚必须生成哪个文件名。

以下是在XPath 2.0 / XSLT 2.0中查找文件名的方法

当前文件的文件名:

 base-uri()

当前样式表模块的文件名:

  base-uri(document(''))

答案 1 :(得分:15)

在XSLT v1 / XPath v1中没有这样的XPath函数或XPath函数的XSLT扩展。

很可能没有文件,即使XSLT引擎没有理由拥有该文件名(考虑将文件内容加载到缓冲区中,将缓冲区解析为DOM然后传递DOM到XSLT处理器)。

您需要将文件名传递给处理器,以便在变换中作为参数使用。