Книга: XSLT

Шаги расположения XPath, часть 2: условия узлов

Шаги расположения XPath, часть 2: условия узлов

При создании образцов в качестве условий узлов (node test) можно использовать имена узлов или символ подстановки * для выбора любого узла элемента. Например, выражение child::*/child::NAME выбирает все элементы <NAME>, являющиеся правнуками контекстного узла. В XPath кроме имен и символа подстановки можно также применять, как и в образцах выбора, следующие условия узлов:

• условие узла comment() выбирает узлы комментария;

• условие узла node() выбирает узел любого типа;

• условие узла processing-instruction() выбирает узел инструкции обработки. В скобках можно указать название выбираемой инструкции обработки;

• условие узла text() выбирает текстовый узел

Например, в листинге 7.2 таблица стилей находит в документе все комментарии при помощи условия узла comment() и создает для каждого комментария новый, <!--Warning:comment found!--> (Внимание! Найден комментарий!).

Листинг 7.2. Выбор комментариев

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="xml"/>
 <xsl:template match="/">
  <xsl:for-each select="descendant::comment()">
   <xsl:comment>Warning: comment found!</xsl:comment>
  </xsl:for-each>
 </xsl:template>
</xsl:stylesheet>

При применении этой таблицы стилей к planets.xml получается следующий документ:

<?xml version="1.0" encoding="UTF-8"?>
<!--Warning: comment found!-->
<!--Warning: comment found!-->
<!--Warning: comment found!-->

Оглавление книги


Генерация: 1.048. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз