如何使用xsl 1.0获取文件名?
我试过了
<xsl:value-of select="base-uri()" />
Run Code Online (Sandbox Code Playgroud)
但得到了"致命的错误!无法找到功能:base-uri"
Dim*_*hev 33
base-uri()是一个标准的XPath 2.0函数,因此在运行XSLT 1.0时,此函数将不可用.
在XSLT 1.0中,文件名(of what?)可以作为转换参数传递.
请注意,并不总是可以为样式表或XML文档生成文件名 - 其中一个或两个都可能驻留在没有关联文件的内存中.
从问题不清楚必须产生哪个文件名.
以下是在XPath 2.0/XSLT 2.0中查找文件名的方法:
当前文档的文件名:
base-uri()
Run Code Online (Sandbox Code Playgroud)
当前样式表模块的文件名:
base-uri(document(''))
Run Code Online (Sandbox Code Playgroud)
Ric*_*ard 15
在XSLT v1/XPath v1中没有这样的XPath函数或XPath函数的XSLT扩展.
很可能没有文件,即使XSLT引擎没有理由拥有该文件名(考虑将文件内容加载到缓冲区中,将缓冲区解析为DOM,然后将DOM传递给XSLT处理器).
您需要将文件名传递到处理器中,以便在变换中作为参数使用.