Domanda

mi piace avere un documento XML DocBook che ha un contenuto per diversi target di pubblico. C'è un filtro che mi permette di filtrare il materiale necessario solo per gli utenti "avanzati"?

L'attributo livello è inventato da me per esprimere ciò che ho in mente.

 <?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>
È stato utile?

Soluzione

DocBook non ha un attributo level. Forse volevi dire userlevel ?

Se si sta utilizzando i fogli di stile DocBook XSL per trasformare i documenti, hanno il supporto integrato per il profiling (testo condizionale). Per utilizzarlo è necessario

  1. utilizzare la versione profiling abilitato del foglio di stile (ad esempio uso html/profile-docbook.xsl invece del solito html/docbook.xsl), e

  2. specificare i valori degli attributi che si desidera al profilo su via un parametro (ad es profile.userlevel insieme a basic).

capitolo 26 di Bob Stayton DocBook XSL: The Complete Guide ha tutti i dettagli.

Altri suggerimenti

Due modi, al largo della parte superiore della mia testa:

  1. Scrivi uno script veloce che prende il level come parametro e, utilizzando XPath o espressioni regolari, che solo sputa fuori l'XML che si desidera.
  2. trasformazione XSLT che sputare il XML che si desidera.

(2) è più pulita, ma (1) è probabilmente più veloce di scrivere.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top