Элементы таблицы стилей

Таблица стилей представляет собой well-formed XML-документ. Эта таблица описывает изначальный документ, конечный документ и то, как трансформировать один документ в другой.

Какие же элементы используются в данном листинге?

<xsl:output method="xml" indent="yes"/>

Данная инструкция говорит о том, что конечный документ, который получится после преобразования, будет являться XML-документом.

<xsl:template match="student">

<lastname>

<xsl:apply-templates/>

</lastname>

</xsl:template>

Инструкция <xsl:template…> задает шаблон преобразования. Набор шаблонов преобразования составляет основную часть таблицы стилей. В предыдущем примере приводится шаблон, который преобразует элемент student в элемент lastname.

Шаблон состоит из двух частей:

1. параметр match, который задает элемент или множество элементов в исходном дереве, где будет применяться данный шаблон;

2. содержимое шаблона, которое будет вставлено в конечный документ.

Нужно отметить, что содержимое параметра math может быть довольно сложным. В предыдущем примере просто ограничились именем элемента. Но, к примеру, следующее содержимое параметра math указывает на то, что шаблон должен применяться к элементу url, содержащему атрибут protocol со значением mailto:

<xsl:template match=”url[@protocol=’mailto’]”>

Кроме этого, существует набор функций, которые также могут использоваться при объявлении шаблона:

<xsl:template match=”chapter[position()=2]”>

Данный шаблон будет применен ко второму по счету элементу chapter исходного документа.

Инструкция <xsl:applytemplates/> сообщает XSL-процессору о том, что нужно перейти к просмотру дочерних элементов. Эта запись означает в расширенном виде:

<xsl:applytemplates select=”child::node()” />

XSL-процессор работает по следующему алгоритму. После загрузки исходного XML-документа и таблицы стилей процессор просматривает весь документ от корня до листьев. На каждом шагу процессор пытается применить к данному элементу некоторый шаблон преобразования; если в таблице стилей для текущего просматриваемого элемента есть шаблон, процессор вставляет в результирующий документ содержимое этого шаблона. Когда процессор встречает инструкцию <xsl:applytemplates/>, он переходит к дочерним элементам текущего узла и повторяет процесс, т.е. пытается для каждого дочернего элемента найти соответствие в таблице стилей.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100