获取XSLT v1.0的当前工作目录?

时间:2013-11-27 14:18:46

标签: xslt

如何使用XSLT 1.0版检索当前工作目录? 我已经在这里查看了这些帖子: XSL, get current working directory How to get current document uri in XSLT?

但它需要2.0版本,我不确定我是否有这样的,因为当我尝试切换到2.0时,我得到一个错误。 以下是我尝试的XSL片段:

<xsl:variable name="myURI" select="resolve-uri('my.xsl')"/>

<xsl:variable name="myURI" select="document-uri(document(''))" />

在这两种情况下我都会收到错误:

Error! Error checking type of the expression 'funcall(resolve-uri, [literal-expr(junit-frames.xsl)])'.
Fatal Error! Could not compile stylesheet

Error! Error checking type of the expression 'funcall(document-uri, [funcall(document, [literal-expr()])])'.
Fatal Error! Could not compile stylesheet

然后我也在这里看到了这篇文章:xslt get the file current folder path

但由于我是XSLT新手,我不明白答案或如何实现它。任何人都可以提供示例代码段吗?谢谢!

1 个答案:

答案 0 :(得分:1)

你在评论中说你正在使用Ant 1.8.2附带的处理器。在这种情况下,最简单的答案可能是将当前目录作为参数传递

<xslt style="stylesheet.xsl" in="in.xml" out="out.xml">
  <param name="basedir" expression="${basedir}" />
</xslt>

并在样式表中添加顶级

<xsl:param name="basedir" />

现在您可以访问当前目录路径$basedir

如果您需要路径作为URI而不是本机文件路径,则可以使用makeurl

<makeurl file="${basedir}" property="basedir.url" />
<xslt style="stylesheet.xsl" in="in.xml" out="out.xml">
  <param name="basedir" expression="${basedir.url}" />
</xslt>