Шаблоны
Шаблоны − часть таблицы стилей, предназначенная для трансформации данных. Когда XSL-процессор обнаруживает последовательность в документе, он пропускает ее через шаблон и трансформирует. Количество шаблонов таблицы стилей не ограничено. Если в таблице стилей имеется несколько шаблонов, то каждый выполняет трансформацию определенного фрагмента XML-документа.
Поскольку XSL представляет собой XSL-словарь, таблицы стилей закодированы с помощью XML. Шаблон задается элементом xsl:template, а последовательность, связанная с ним, − атрибутом match элемента xsl:template.
Следующий пример демонстрирует использование шаблона для корневого элемента документа:
<xsl:template match="/">
Этот шаблон будет осуществлять трансформацию всего документа целиком, начиная с корневого элемента. Как правило, вам необходимо будет создавать шаблоны для элементов, находящихся ниже корневого.
Например, шаблон для элемента title XML-документа, приведенного на Рис. 7.1, будет выглядеть так:
<xsl:template match="book/bookPart/chapter/title">
</xsl:template>
Как видим, элемент title задан с перечислением всех его родительских элементов. Обратите внимание на закрывающий тег </xsl:template>, обязательный для всех шаблонов. Чтобы задать преобразование для данных находящихся внутри элемента title, следует поместить тег <xsl:value-of/> внутри шаблона, как показывает следующий код.
<xsl:template match="book/bookPart/chapter/title">
<b>Глава </b><xsl:value-of/>
</xsl:template>
Здесь преобразование заключается в том, что перед данными элемента title будет помещен текст Глава, выделенный полужирным шрифтом. Элемент <xsl:value-of/> представляет содержимое элемента title. Кроме <xsl:value-of/> существует еще несколько элементов, которые часто используются при создании шаблонов и входят в стандартное пространство имен XSL:
xsl:value-of − вставляет содержимое элемента (атрибута) XML;
xsl:if − задает условное соответствие для шаблонов;
xsl:for-each − создает цикл для элементов документа XML;
xsl:apply-templates − применяет шаблон к XML-документу.
Дата добавления: 2015-02-03; просмотров: 809;