XSL,获取当前工作目录
我正在寻找将当前工作目录存储到变量中的XSL样式表的具体示例。XSL,获取当前工作目录
我需要这个,因为在我的情况下,我需要使用相对路径导入某些库样式表。了解我的处理器正在选择的路径作为当前目录就足够了。
编辑
没有供应商特定的请。
回答:
在XSLT 2.0中,可以使用标准的XPath 2.0函数resolve-uri()。
待办事项,所包括的/导入的样式表模块的相对URI是相对于基地包括/导入样式表模块的URI - 而不是从“工作目录”!
下面是该函数的从W3˚F&输出规格说明书的一部分:
8.1 FN:解决-URI
FN:解决-URI(相对$如 的xs:字符串?)作为xs:anyURI?
fn:resolve-uri($ relative为 xs:string?,$ base为xs:string)为 xs:anyURI?
摘要:此功能 的目的是使相对URI成为 针对绝对URI进行解析。
该函数的第一种形式 解决了相对于 静态上下文中base-uri属性的值 的$ relative问题。如果在 静态上下文中没有初始化base-uri 属性,则会引发错误 [err:FONS0005]。
这里是一个非常简单的例子:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:sequence select=
"resolve-uri('resolve-uri-example2.xsl')"/>
</xsl:template>
</xsl:stylesheet>
当该转化针对任何XML文档(未使用)时,结果是施加:
file:///c:/tests/resolve-uri-example2.xsl
这是正确的结果,因为我们的主要样式表模块保存为:
c:/tests/resolve-uri-example2.xsl
回答:
在XSL世界中,不能保证绝对当前的工作目录存在,或者即使这个概念有意义。对这个问题的任何答案都必须是供应商特定的。
以上是 XSL,获取当前工作目录 的全部内容, 来源链接: utcz.com/qa/259825.html