如何在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函数或XSLT扩展来执行此操作。
文件可能不存在,即使存在文件,也没有理由让XSLT引擎知道该文件名(考虑将文件内容加载到缓冲区中,将缓冲区解析为DOM,然后将DOM传递给XSLT处理器)。
您需要将文件名作为参数传递给处理器,在转换中可以使用。