2010-08-26 6 views
2

J'aime avoir un document docbook xml qui a du contenu pour plusieurs publics cibles. Existe-t-il un filtre qui me permet de filtrer les éléments nécessaires uniquement aux utilisateurs "avancés"?Publication Docbook pour différents publics cibles

L'attribut de niveau est inventé par moi pour exprimer ce que j'ai en tête.

<?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> 

Répondre

2

DocBook n'a pas d'attribut level. Peut-être que vous vouliez dire userlevel?

Si vous utilisez les feuilles de style DocBook XSL pour transformer vos documents, ils prennent en charge le profilage (texte conditionnel). Pour l'utiliser, vous devez

  1. utiliser la version de profilage permis de la feuille de style (par exemple, utiliser html/profile-docbook.xsl au lieu de l'habituel html/docbook.xsl), et

  2. spécifier l'attribut valeurs que vous souhaitez profil via un parameter (par exemple, régler profile.userlevel à basic).

Chapter 26 de DocBook Bob Stayton XSL: Le guide complet a tous les détails.

+0

Merci beaucoup. Je ne pouvais pas imaginer que docbook n'a pas quelque chose comme ça. – schoetbi

0

Deux voies, du haut de ma tête:

  1. écrire un script rapide qui prend la level en tant que paramètre et, en utilisant XPath ou des expressions régulières, qui ne recrache le XML que vous voulez . Ecrivez un XSLT transformation qui crachera le XML que vous voulez.

(2) est plus propre, mais (1) est probablement plus rapide à écrire.

+0

Je m'attendais à ce que docbook ait quelque chose de prêt pour cela mais comme vous l'avez dit, xslt de base fonctionne. voir mon autre poste avec la source. Merci. – schoetbi

Questions connexes