我编写了一个样式表,它加载第二个样式表并覆盖一些东西。问题是,要使用xsl:import元素,我似乎需要知道我试图导入的样式表的绝对路径。我怎么才能避开这一切?
理想情况下,我不希望将绝对路径放入样式表中。我想把它传递到命令行。这样,如果基本样式表移动,我就不必编辑我的所有样式表。
我正在使用命令行Xalan工具来应用XSLT。A看了一下手册,但似乎没有“查看这里的样式表”之类的选项。
我还考虑将基本路径作为XSL参数传入-但我不知道如何将其插入到xsl:import元素的xsl:import属性中.
有什么暗示吗?当然我不可能是第一个想这么做的人.
基本上,我正在使用DocBook编写文档。我已经下载了一个正式的DocBook XSL样式表的副本(它是巨大的,由数千个XSL文件组成)。对于我编写的每一个文档,我都希望创建一个很小的XSL文件,该文件导入正式的DocBook XSL,然后调整一些设置(纸张大小等)。
为了做到这一点,看来我必须将通往正式DocBook XSL文件的路径硬编码到每个文档的本地XSL中。这意味着,如果我更新到一个更新版本的正式样式表,我将不得不编辑我曾经写过的每一个自定义XSL,因为样式表版本号在路径名中。
我想要做的是将路径硬编码到运行Xalan的脚本中。因此,如果样式表移动,我只需编辑一个脚本,它就完成了。但我不知道该怎么做。我看不出有什么方法可以告诉Xalan在哪里查找导入的样式表。
即使我使用相对路径,这些路径仍然有一个硬编码的版本号。Windows不能做符号链接所以..。
发布于 2014-02-20 21:37:56
只要知道基URI,href属性就可以是一个相对路径。
如果您是从命令行运行的,那么“主”样式表的基本URI是众所周知的,所以这不应该是个问题。我认为你需要更具体地说明你正在做什么,以及它是如何失败的。
发布于 2014-02-20 22:02:06
好吧,我找到了一个解决办法:
编写一个带有绝对路径的XSL文件,将其硬编码到正式的DocBook样式表中。将所有自定义样式表从该样式表导入。(显然你能做到。)
现在,如果正式样式表移动,我只需编辑一个文件。
(这仍然意味着我需要能够找到神奇的样式表。将它放在我保存所有文档的文件夹中,这是一个简单的相对路径操作。)
https://stackoverflow.com/questions/21919666
复制相似问题