来自 Linux 发行版并从网络上的许多示例中复制/粘贴,我正在执行以下操作以在我的 XSL 文件中包含 DocBook 样式(使用 xsltproc 处理):
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:import href="/usr/share/xml/docbook/stylesheet/nwalsh/html/docbook.xsl"/>
...
只要“docbook.xsl”在指定的位置,它就可以很好地工作。当然,并非总是如此。例如,在带有 MacPorts 的 Mac OSX 上,它需要:
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:import href="/opt/local/share/xsl/docbook-xsl/html/docbook.xsl"/>
...
一条完全不同的路。我已经通过网络查看是否存在 XSL 的“文件存在”功能(显然还没有)或者条件包含是否可能(显然不是)。
因此,除了必须根据“docbook.xsl”的实际位置动态创建 XSL(我可能会通过 Makefile 执行此操作)之外,是否还有其他可能性可以从正确的位置导入文件而没有太多麻烦?
编辑/回答: Dimitre 指出了正确的方法,在阅读了一些内容和我系统上的一般目录文件之后,对具体问题的简短回答是使用:
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"/>
结案,问题解决。编写自己的目录被推迟到另一个时间:-)