2011-04-23 39 views
3

從Linux發行版開始,通過網絡複製/粘貼大量示例,我正在執行以下操作,以將DocBook樣式包含在我的XSL文件(在xsltproc處理):XSL導入:如何克服(docbook或其他)樣式文件位置的差異

<?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」是在指定的地點。當然,這並不總是。例如,在Mac OSX與MacPorts的,它需要:

<?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」的真實位置(我可能會通過Makefile)來動態創建XSL,還有其他任何可能將文件從正確的位置導入沒有太多麻煩?

編輯/答: Dimitre指出正確的方式,閱讀了一下那裏後並在我的系統中的一般目錄文件,簡單的答案的具體問題是使用:

<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"/> 

案件結案,問題解決。和書寫自己的目錄被推遲到另一個時間:-)

+0

好問題,+1。請參閱我的答案以獲得一般和標準解決方案。 – 2011-04-23 18:04:26

+0

你寫道:「我查看過網絡是否存在XSL的」文件存在「功能(顯然還沒有)或者條件包含是否可能(顯然不是)。」這並不完全正確。在SO中搜索這些問題。 – 2011-04-23 22:37:58

回答

2

因此,短期有動態 創建XSL具體情況取決於 「docbook.xsl」真的是(我會 大概到通過Makefile),是 有沒有其他的可能性 從正確的 位置導入文件沒有太多的麻煩?

XML目錄旨在解決這個問題(等)。

瞭解更多here

相關問題