Создание разделов CDATA

Создание разделов CDATA

При преобразованиях XML-XML может потребоваться вывести разделы CDATA. В XSLT это легко осуществимо при помощи атрибута cdata-section-elements элемента <xsl:output>. Упомянутый атрибут позволяет указать, содержимое каких элементов следует заключить в раздел CDATA. Последнее может понадобиться, например, при создании элементов сценария, когда браузер требует заключения кода сценария в раздел CDATA.

В следующем примере я поместил содержимое элементов <NAME> и <MASS> в planets.xml в разделы CDATA:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 <xsl:output method="xml" cdata-section-elements="NAME MASS"/>

 <xsl:template match="@*|node()">

  <xsl:copy>

   <xsl:apply-templates select="@*|node()"/>

  </xsl:copy>

 </xsl:template>

</xsl:stylesheet>

И вот результат:

<?xml version=1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xml" href="planets.xsl"?>

<PLANETS>

 <PLANET>

  <NAME><![CDATA[Mercury]]></NAME>

  <MASS UNITS="(Earth = 1)"><![CDATA[.0553]]></MASS>

  <DAY UNITS="days">58.65</DAY>

  <RADIUS UNITS="miles">1516</RADIUS>

  <DENSITY UNITS="(Earth = 1)">.983</DENSITY>

  <DISTANCE UNITS="million miles">43.4</DISTANCE><!--B перигелии-->

 </PLANET>

 <PLANET>

  <NAME><![CDATA[Venus]]></NAME>

  <MASS UNITS="(Earth = 1)"><![CDATA[.815]]></MASS>

  <DAY UNITS="days">116.75</DAY>

  <RADIUS UNITS="miles">3716</RADIUS>

  <DENSITY UNITS="(Earth = 1)">.943</DENSITY>

  <DISTANCE UNITS="million miles">66.8</DISTANCE><!--B перигелии-->

 </PLANET>

 .

 .

 .

ОБРАБОТКА CDATA В ИСХОДНОМ И РЕЗУЛЬТИРУЮЩЕМ ДОКУМЕНТЕ

Рассмотренная техника создает разделы CDATA результирующего документа, она не рассматривает как CDATA какие-либо данные исходного документа. Например, если вам нужно преобразовать <script>if х < у {...} </script> в <script><![CDATA[if х < у {...}]]></script>, поскольку ваш браузер требует, чтобы код сценария заключался в разделы CDATA, процессор XSLT испытает трудности с символом < в «х < у». В этом случае необходимо написать <script>if х &lt; у {...} </script>, для того чтобы процессор XSLT сгенерировал <script><![CDATA[if х < у {...}]]> </script>. 

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Корневые элементы разделов

Из книги автора

Корневые элементы разделов Некоторые элементы не появляются в сгенерированном содержании. Другими словами, неважно, сколько заголовков вы используете внутри своих элементов, – в содержании документа они не появятся.Элементы blockquote, fieldset и td являются исключениями для


Элементы и

Из книги автора

Элементы <?xml?> и <![CDATA[]]> Эти элементы являются стандартными для разметки W3C XML 1.0. В сценариях WSH они определяют способ обработки WS-файла. Всего существует два режима обработки сценария: нестрогий (loose) и строгий (strict).При нестрогой обработке (элемент <?xml?> отсутствует)


Элементы и

Из книги автора

Элементы <?xml?> и <![CDATA[]]> Напомним, что эти элементы являются стандартными для разметки W3C XML 1.0 (см. главу 3). Для того чтобы использовать символы кириллицы в файлах компонентов-сценариев, нужно обязательно в элементе <?xml?> указать атрибут encoding со значением,


2.3.3. Ручное создание разделов

Из книги автора

2.3.3. Ручное создание разделов Если вы настраиваете сервер, а не домашний компьютер, то я настоятельно рекомендую создать разделы вручную. По умолчанию программа установки создаст только два раздела — основной и для файла подкачки (будет использоваться при нехватке


2.5. Подготовка разделов на диске

Из книги автора

2.5. Подготовка разделов на диске 2.5.1. Рекомендации по созданию разделов Рекомендации тут давать довольно сложно, так как во многом это зависит от воли и потребностей хозяина диска. Но все же попробую сформулировать некоторые предложения. При этом диски и разделы буду


2.5.1. Рекомендации по созданию разделов

Из книги автора

2.5.1. Рекомендации по созданию разделов Рекомендации тут давать довольно сложно, так как во многом это зависит от воли и потребностей хозяина диска. Но все же попробую сформулировать некоторые предложения. При этом диски и разделы буду именовать так, как это принято в Linux,


1.1.2. Имена разделов в ОС Linux

Из книги автора

1.1.2. Имена разделов в ОС Linux Linux представляет наименования разделов как имена файлов, в виде /dev/xxyN, где:? /dev — это каталог, в котором расположены все файлы, связанные с устройствами;? xx — две буквы названия раздела, указывающие тип устройства, на котором размещается раздел.


1.1.3.3. Создание разделов

Из книги автора

1.1.3.3. Создание разделов При установке Fedora на новый компьютер, жесткий диск которого еще не размечен на разделы, вы увидите сообщение о том, что таблица разделов нечитаема, поэтому устройство (жесткий диск) будет инициализировано, т.е. будет создана таблица разделов с


7.2. Интерпретация разделов

Из книги автора

7.2. Интерпретация разделов В рамках любого раздела ключевых практик для обеспечения преемственности и согласованности используются определенные фразы и условные термины.Основные структурные термины описаны ниже и сгруппированы по


Нумерация страниц и разделов

Из книги автора

Нумерация страниц и разделов При работе с большими публикациями мы неизбежно сталкиваемся с необходимостью нумерации разделов и страниц. Пытаться выполнить это вручную, конечно же, бессмысленно, поэтому Adobe InDesign содержит необходимые механизмы для автоматической


3.3.3. Сопровождение разделов

Из книги автора

3.3.3. Сопровождение разделов Ряд задач сопровождения выделения разделов может быть выполнен в MySQL 5.1. MySQL не поддерживает команды CHECK TABLE, OPTIMIZE TABLE, ANALYZE TABLE или REPAIR TABLE для разбитых на разделы таблиц. Вместо этого Вы можете использовать ряд расширений ALTER TABLE, которые были


3.5. Ограничения выделения разделов

Из книги автора

3.5. Ограничения выделения разделов Этот раздел обсуждает текущие ограничения поддержки выделения разделов MySQL:Начиная с MySQL 5.1.12, следующие конструкции не разрешаются в выражениях выделения разделов:Вложенные обращения к функциям (то есть, конструкции типа


5.2. Удаление разделов и параметров

Из книги автора

5.2. Удаление разделов и параметров Удаление разделов или параметров может понадобиться, когда нужно сбросить настройки какой-нибудь программы. Иногда разработчики забывают в окне настроек сделать кнопку «По умолчанию», позволяющую сбросить параметры, поэтому это