=> Главная База Знаний Xslt Шаги расположения xpath, часть 2: условия узлов


Шаги расположения 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!-->