【问题标题】:Xalan-Java: Set search pathXalan-Java:设置搜索路径
【发布时间】:2014-03-22 02:18:24
【问题描述】:

我编写了一个样式表,它加载了第二个样式表并覆盖了一些东西。麻烦的是,要使用xsl:import 元素,我似乎需要知道我要导入的样式表的绝对路径。我该如何解决这个问题?

理想情况下,我不想将绝对路径放入样式表中。我想在命令行上传递它。这样,如果基本样式表移动了,我就不必去编辑我的所有样式表了。

我正在使用命令行 Xalan-Java 工具来应用 XSLT。 A 看过手册,但似乎没有任何“在 here 查找样式表”的选项。

我还考虑过将基本路径作为 XSL 参数传入 - 但我不知道如何将其推入 xsl:import 元素的 href 属性中...

有什么提示吗?当然,我不可能是第一个想要这样做的人......


基本上我正在使用 DocBook 编写文档。我下载了一份官方 DocBook XSL 样式表(巨大,包含数千个 XSL 文件)。对于我编写的每个文档,我都想制作一个很小的 ​​XSL 文件,用于导入官方 DocBook XSL,然后调整一些设置(纸张大小等)

为了做到这一点,看来我必须将官方 DocBook XSL 文件的路径硬编码到每个文档的本地 XSL 中。 意味着如果我更新到官方样式表的新版本,我将不得不去编辑我曾经编写过的每个自定义 XSL [因为样式表版本号在路径名中] .

我希望喜欢 将该路径硬编码到运行 Xalan 的脚本中。因此,如果样式表移动了,我只需编辑一个脚本,就完成了。但我不知道该怎么做。我看不出有什么方法可以告诉 Xalan 在哪里寻找导入的样式表。

即使我使用相对路径,这些路径仍然有一个硬编码到其中的版本号。而且 Windows 不能做符号链接,所以...

【问题讨论】:

    标签: xslt xalan


    【解决方案1】:

    href 属性可以是相对路径;只要基本 URI 已知。

    如果您从命令行运行,那么“主”样式表的基本 URI 通常是已知的,所以这应该不是问题。我认为你需要更具体地说明你在做什么以及它是如何失败的。

    【讨论】:

      【解决方案2】:

      好的,我找到了一个解决方案:

      编写一个 XSL 文件,其中包含硬编码到其中的官方 DocBook 样式表的绝对路径。让所有自定义样式表都从该样式表中导入。 (显然你可以做到。)

      现在,如果官方样式表发生变化,我只需要编辑一个文件。

      (这仍然意味着我需要能够找到神奇的样式表。将它放在上面我保存所有文档的文件夹中,这使得这是一个简单的相对路径操作。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-05
        • 2011-11-20
        • 2017-03-12
        • 1970-01-01
        • 2018-12-21
        • 2011-11-10
        相关资源
        最近更新 更多