如何使用 xsl 1.0 获取文件名?
我试过
<xsl:value-of select="base-uri()" />
但得到“致命错误!找不到函数:base-uri”
base-uri()
是一个标准的 XPath 2.0 函数,所以在运行 XSLT 1.0 时这个函数将不可用。
在 XSLT 1.0 中,文件名(什么?)可以作为转换的参数传递。
请注意,并非总是可以为样式表或 XML 文档生成文件名——其中一个或两者都可能驻留在内存中而没有相关文件。
从问题中不清楚必须生成哪个文件名。
以下是在 XPath 2.0 / XSLT 2.0 中查找文件名的方法:
当前文档的文件名:
base-uri()
当前样式表模块的文件名:
base-uri(document(''))
在 XSLT v1/XPath v1 中没有这样的 XPath 函数或 XPath 函数的 XSLT 扩展来执行此操作。
很可能没有文件,即使 XSLT 引擎没有理由拥有该文件名(考虑将文件内容加载到缓冲区中,将缓冲区解析为 DOM,然后将 DOM 传递给XSLT 处理器)。
您需要将文件名传递给处理器,以便在转换中作为参数使用。