2010-08-26 56 views
2

我喜歡有一個docbook xml文檔,其中包含多個目標受衆的內容。是否有一個過濾器可以讓我過濾掉「高級」用戶只需要的東西?針對不同目標受衆的Docbook發佈

我發明了level屬性來表達我的想法。

<?xml version="1.0"?> 
<book> 
    <title lang="en">Documentation</title> 

    <chapter id="introduction" level="advanced"> 
     <title>Introduction for advanced users</title> 
    </chapter> 

    <chapter id="introduction" level="basic"> 
     <title>Introduction for basic users</title> 
    </chapter> 

    <chapter id="ch1"> 
     <para level="basic">Just press the button</para> 
     <para level="advanced"> 
      Go to preferences to set your 
      needs and then start the process 
      by pressing the button. 
     </para> 
    </chapter> 
</book> 

回答

2

DocBook沒有level屬性。也許你的意思是userlevel

如果您正在使用DocBook XSL樣式表來轉換文檔,它們具有內置的對分析(條件文本)的支持。要使用它,你需要

  1. 使用樣式表的啓用分析-版本(例如使用html/profile-docbook.xsl而不是通常的html/docbook.xsl),並

  2. 指定要通過剖析的屬性值parameter(例如,設置profile.userlevelbasic)。

鮑勃·斯泰頓的的DocBook XSL的Chapter 26:完全指南有所有的細節。

+0

非常感謝。我無法想象那個docbook沒有這樣的東西。 – schoetbi 2010-08-27 20:14:41

0

兩種方式,把我的頭頂部:

  1. 編寫一個簡單的腳本,它的level作爲參數,並使用XPath或正則表達式,只吐出你想要的XML 。
  2. 編寫一個XSLT transformation將會吐出你想要的XML。

(2)更清潔,但(1)寫起來可能更快。

+0

我預計docbook已經準備好了,但正如你所說的基本的xslt工作。看到我的其他職位與源代碼。謝謝。 – schoetbi 2010-08-26 21:57:50

相關問題