Вопрос

Мне нравится иметь один документ XML Docbook, который имеет контент для нескольких целевых аудиторий. Есть ли фильтр, который позволяет мне отфильтровывать вещи, необходимые только для пользователей «Advanced»?

Атрибут уровня изобретен мной, чтобы выразить то, что я имею в виду.

 <?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>
Это было полезно?

Решение

Docbook не имеет level атрибут. Возможно, вы имели в виду userlevel?

Если вы используете таблицы Docbook XSL stylesheets, чтобы преобразовать ваши документы, они имеют встроенную поддержку профилирования (условный текст). Использовать его, вам нужно

  1. Используйте версию с поддержкой профилирования stylesheet (например, использование html/profile-docbook.xsl вместо обычного html/docbook.xsl), а также

  2. Укажите значения атрибутов, на которых вы хотите профилировать через параметр (например, набор profile.userlevel к basic).

Глава 26. Боб Пайатона Docbook XSL: полное руководство есть все детали.

Другие советы

Два пути, от верхней части моей головы:

  1. Напишите быстрый скрипт, который принимает level как параметр и, используя Оседание или регулярные выражения, которые выплевывают только XML, которые вы хотите.
  2. Написать АН Преобразование XSLT Это высказывает XML, который вы хотите.

(2) Очиститель, но (1), вероятно, быстрее, чтобы записать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top