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

回到顶部