代码之家  ›  专栏  ›  技术社区  ›  Mike

XSL,获取当前工作目录

  •  4
  • Mike  · 技术社区  · 14 年前

    我需要这个,因为在我的情况下,我需要使用相对路径导入某些库样式表。知道处理器选择的路径作为当前目录就足够了。

    编辑

    没有供应商的具体要求。

    2 回复  |  直到 14 年前
        1
  •  6
  •   Dimitre Novatchev    14 年前

    在XSLT 2.0中,可以使用标准的xpath2.0函数 resolve-uri()

    请注意,包含/导入的样式表模块的相对uri与 包括/导入样式表模块——而不是来自“工作目录”!

    以下是W3 F&O规范中对此功能的部分描述:

    8.1 fn:解析uri

    fn:解析uri($relative as xs:string?)作为xs:anyURI?

    fn:解析uri($relative as xs:string吗?,$base as xs:string)as xs:anyURI吗?

    摘要:此功能的目的 使相对URI 根据绝对URI解析。

    此函数的第一种形式 根据值解析$relative 属性未在中初始化 [错误: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
    
        2
  •  2
  •   Jim Garrison    14 年前