Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Semantic web.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.1 Mб
Скачать
      1. Синтаксис основных элементов xsl.

xsl:value-of

Вставка некоторого значения в выходной поток.

Синтаксис:

<xsl:value-of select="expression"

disable-output-escaping="yes|no"/>

Атрибут

Значение

Описание

select

выражение

Обязателен. Значение, передаваемое на выход

disable-output-escaping

yes|no

Не обязателен. "Yes" показывает, что специальные символы (например, "<") должные передаваться на выход так, как есть. "No" показывает, что специальные символы (например, "<") должны передаваться на выход как "%lt". По умолчанию "по".

Примеры:

Запись в выходной поток значения элемента XML-документа:

<xsl:value-of select="Book/Title"/>

Запись в выходной поток значения текущего узла XML-документа:

<xsl:value-of select="."/>

Запись в выходной поток числа 10:

<xsl:value-of select="5+5"/>

Запись в выходной поток значения переменной book:

<xsl:value-of select="$book"/>

xsl:if

Элемент – условный опреатор.

Синтаксис:

<xsl:if test="expression">

template-body

</xsl:if>

Атрибут

Значение

Описание

test

выражение

Обязателен. Проверяемое условие

Примеры:

<xsl:if test="Book/Title = 'Война и мир'">

<xsl:value-of select="Book/Title"/><br/>

<xsl:value-of select="Book/Creator"/><br/>

</xsl:if>

xsl:for-each

Позволяет создать цикл.

Синтаксис:

<xsl:for-each select="expression">

<xsl:sort>

template-body

</xsl:for-each>

Атрибут

Значение

Описание

select

выражение

Обязателен. Обрабатываемый набор элементов

Элемент for-each выполняет две основные задачи:

  • осуществляет вывод блока элементов, содержащихся внутри элемента for-each, повторяя его для каждого XML-элемента в документе, отвечающего образцу, присвоенному атрибуту select элемента for-each;

  • for-each задает текущий элемент, устанавливаемый атрибутом select, и в XSL-элементах внутри элемента for-each уже не нужно указывать полное имя XML-элемента.

Примеры:

<xsl:for-each select="Library/Book">

<xsl:value-of select="dc:title"/><br/>

<xsl:value-of select="dc:description/@xml:lang"/><br/>

<xsl:value-of select="dc:identifier"/><br/><br/>

</xsl:for-each>

xsl:sort

Элемент <xsl:sort> всегда является дочерним элементом элемента <xsl:for-each> или элемента <xsl:apply-templates> и позволяет задавать сортировку набора узлов.

Синтаксис:

<xsl:sort

select="выражение"

order="ascending|descending"

case-order="upper-first|lower-first"

lang="language-code" data-type="text|number|qname"/>

Атрибут

Значение

Описание

select

выражение

He обязателен. Сортировочное выражение

order

Ascending

/

descending

He обязателен. Порядок сортировки. По умолчанию ascending – в порядке возрастания

case-order

upper-first

/

lower-first

Не обязателен. Большие буквы идут впереди маленьких или наоборот.

lang

код языка

Не обязателен. Язык, применяемый для сортировки.

data-type

text

/

Number

/

qname

Не обязателен. Тип сортируемых данных. Это текст, числа или определенный пользователем тип данных. По умолчанию text

Примеры:

<xsl:for-each select="Library/Book">

<xsl:sort data-type="text" select="dc:creator"/>

<xsl:value-of select="dc:title"/>

<xsl:value-of select="dc:creator"/>

<xsl:value-of select="dc:description"/>

</xsl:for-each>

xsl: variable

Объявление переменной.

Синтаксис:

<xsl:variable name="name" select="expression">

содержимое

</xsl:variable>

Атрибуты

Атрибут

Значение

Описание

name

имя

Обязателен. Имя переменной

select

выражение

Не обязателен. Значение переменной

В дальнейшей работе имя переменной используется со знаком "$".

Начальное значение переменной задается следующими способами:

  • Если объявление переменной атрибут select, то значением переменной является объект, полученный в результате обработки выражения в атрибуте select. Содержимое элемента в этом случае должно быть пустым.

<xsl:variable name="car" select="Audi">

  • Если объявление переменной не имеет атрибута select, но имеет непустое содержание, тогда значение задается содержимым элемента и формируется фрагмент конечного дерева. Это позволяет использовать переменную в XSL-элементе value-of

<xsl:variable name=" var1"> значение </xsl:variable>

<xsl:value-of select="$var1"/>

Если объявление переменной имеет пустое содержимое и не имеет атрибута select, значением переменной является пустая строка.

<xsl:variable name="var1"/>

Значение переменной можно просто подставить в выходной поток используя фигурные скобки, например:

<xsl:variable name="para-font-size">18pt</xsl:variable>

<div style="font-size={$para-font-size}">

Содержимое блока div

</div>

xsl:copy-of

Копирует текущий элемент в выходной поток (с дочерними узлами и атрибутами) без предварительного конвертирования их в строку, как это делает элемент <xsl:value-of>. Данный элемент применяется тогда, когда нужно скопировать без изменений под-дерево из входного документа в выходной.

Синтаксис:

<xsl:copy-of select="expression"/>

Атрибут

Значение

Описание

select

выражение

Обязателен. Элемент, который копируется в выходной поток.

Примеры:

<xsl:copy-of select="Book/Pages"/>

xsl:output

Позволяет контролировать формат выходного потока данной таблицы стилей. Элемент <xsl:output> – элемент верхнего уровня и должен появляться как первый дочерний узел элемента <xsl:stylesheet>

Синтаксис:

<xsl:output

method="xml|html|text|name"

version="version"

encoding="text"

omit-xml-declaration="yes|no"

standalone="yes|no"

indent="yes|no"/>

Атрибут

Значение

Описание

method

xml/html/ text/name

He обязателен. Выходной формат.

version

число

He обязателен. XML-версия выходного формата.

encoding

текст

He обязателен. Кодировка.

omit-xml-declaration

yes/no

Не обязателен. "Yes" указывает, что XML-декларация (<?xml... ?>) в выходном потоке может быть опущена. "No" указывает, что декларация должна быть включена в выходной поток

standalone

yes/no

Не обязателен. "Yes" указывает, что результат должен быть автономным документом. "No" указывает, что результат не должен быть автономным документом.

indent

yes/no

Не обязателен. "Yes" указывает, что выходной поток должен быть с отступами, отражающими иерархическую структуру (для удобочитаемости). "No" указывает, что выходной поток должен быть без отступов.

Желательный элемент – в некоторых браузерах необходимо явно указывать тип выходного потока для правильной работы (например, Opera)

Примеры

<xsl:output method="html" version="4.0" encoding="windows-1251" indent="yes"/>

xsl:text

Записывает текст в выходной поток.

Синтаксис:

<xsl:text disable-output-escaping="yes|no">

текст

</xsl:text

Атрибут

Значение

Описание

disable-output-escaping

yes / no

He обязателен. "Yes" указывает, что специальные символы, например, знак меньше ">", должны выводиться так, как они есть. "No" показывает, что специальные символы должны выводиться как "%lt". По умолчанию "No".

Примеры:

<xsl:text>The element has no color attribute! </xsl:text>

xsl:template

Задает шаблон для выходного потока. Это элемент верхнего уровня

Синтаксис:

<xsl:template

name="name"

match="pattern"

mode="mode"

priority="number">

template-body

</xsl:template>

Атрибут

Значение

Описание

name

имя

He обязателен. Имя шаблона. Если этот атрибут опускается должен быть атрибут match

match

образец

Не обязателен. Если этот атрибут опускается должен быть атрибут name

mode

текст

Не обязателен. Режим данного шаблона

priority

число

Не обязателен. Число, показывающее приоритет данного шаблона.

xsl :apply-templates

Применяет шаблон к текущему элементу – задается набор узлов для обработки текущим элементом.

Синтаксис:

<xsl:apply-templates select="expression" mode="name">

<xsl:sort>

</xsl:apply-templates>

Атрибут

Значение

Описание

select

выражение

He обязателен. Множество обрабатываемых узлов. Если пропущен, обрабатываются все дочерние узлы данного узла.

mode

имя

Не обязателен. Режим обработки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]