Чтение онлайн

на главную - закладки

Жанры

Технология XSLT

Валиков Алексей Н.

Шрифт:

Мы можем использовать

xsl:for-each
для того, чтобы создать список гипертекстовых ссылок для документа вида.

Листинг 7.24. Входящий документ

<html>

 <head>

<title>I'm just a simple page...</title>

 </head>

 <body>

Please visit <a href="#">this link</a>.

Or <a href="#">this one</a>.

Or visit <a href="#">this site</a>.

Or click <a href="#">here</a>.

 </body>

</html>

Будем

считать, что в этом документе элементы гипертекстовых ссылок а являются потомками элемента
body
, который находится в элементе
html
.

Листинг 7.25. Шаблон преобразования

<xsl:template match="/">

 <links>

<xsl:for-each select="/html/body//a">

<a href="#">

<xsl:value-of select = "@href"/>

</a>

</xsl:for-each>

 </links>

</xsl:template>

Листинг 7.26. Результат преобразования

<links>

 <a href="#">http://www.aaa.com</a>

 <a href="#">http://www.bbb.com</a>

 <a href="#">http://www.ccc.com</a>

 <a href="#">http://www.ddd.com</a>

</links>

Элемент

xsl:for-each
изменяет контекст преобразования. Множество узлов, возвращаемое выражением в атрибуте
select
, становится текущим множеством узлов, а узел, шаблон для которого выполняется в данный момент, становится текущим узлом.

Как мы знаем, множества узлов в XSLT не имеют внутреннего порядка. Однако, обработка узлов в

xsl:for-each
будет происходить в так называемом порядке просмотра документа, который зависит от того, какое выражение использовалось для вычисления обрабатываемого множества. Порядок обработки множества узлов в
xsl:for-each
может быть также изменен элементами
xsl:sort
, которые могут присутствовать в
xsl:for-each
. Элемент
xsl:sort
задает сортировку обрабатываемого множества узлов, изменяя, таким образом, порядок просмотра, что часто бывает очень полезно.

Глава 8

Дополнительные элементы и функции языка XSLT

Дополнительные элементы и функции

В этой главе разбираются дополнительные элементы

и функции языка XSLT, которые выполняют в преобразованиях различные задачи, непосредственно не связанные с созданием узлов выходящего документа. Дополнительные элементы и функции XSLT расширяют возможности преобразования, предоставляя разного рода вспомогательный сервис.

К дополнительным элементам XSLT мы отнесем следующие:

□ 

xsl:preserve-space
и
xsl:strip-space
— работа с пробельными символами;

□ 

xsl:message
— сообщения процессора;

□ 

xsl:sort
— сортировка множеств перед обработкой;

□ 

xsl:namespace-alias
— определение псевдонимов пространств имен;

□ 

xsl:key
— определение ключей;

□ 

xsl:number
— нумерация;

□ 

xsl:decimal-format
— определение десятичного формата;

□ 

xsl:output
— контроль сериализации.

В XSLT также определяются дополнительные функции, расширяющие базовую библиотеку функций XPath:

□ 

key
— использование ключей;

□ 

format-number
— форматирование чисел;

□ 

document
— обращение к внешним документам;

□ 

current
— обращение к текущему узлу преобразования;

□ 

unparsed-entity-uri
— получение URI неразбираемой сущности по ее имени;

□ 

generate-id
— генерация уникального идентификатора узла документа;

□ 

system-property
— получение информации о свойствах системы, окружения.

Обработка пробельных символов

В XSLT выделяются четыре пробельных символа, обработка которых несколько отличается от обработки других символов. Их Unicode-коды и описания сведены в табл. 8.1.

Таблица 8.1. Unicode-коды пробельных символов

Unicode-коды Описание
Десятичный Шестнадцатеричный
#9
#x9
Горизонтальная табуляция
#10
#xA
Перевод строки
#13
#xD
Возврат каретки
#32
#x20
Пробел
Поделиться:
Популярные книги

На границе империй. Том 3

INDIGO
3. Фортуна дама переменчивая
Фантастика:
космическая фантастика
5.63
рейтинг книги
На границе империй. Том 3

На границе империй. Том 5

INDIGO
5. Фортуна дама переменчивая
Фантастика:
боевая фантастика
попаданцы
7.50
рейтинг книги
На границе империй. Том 5

Ученичество. Книга 2

Понарошку Евгений
2. Государственный маг
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ученичество. Книга 2

Адвокат вольного города 3

Кулабухов Тимофей
3. Адвокат
Фантастика:
городское фэнтези
альтернативная история
аниме
5.00
рейтинг книги
Адвокат вольного города 3

Мымра!

Фад Диана
1. Мымрики
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Мымра!

Пипец Котенку! 2

Майерс Александр
2. РОС: Пипец Котенку!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Пипец Котенку! 2

Инкарнатор

Прокофьев Роман Юрьевич
1. Стеллар
Фантастика:
боевая фантастика
рпг
7.30
рейтинг книги
Инкарнатор

Часовая битва

Щерба Наталья Васильевна
6. Часодеи
Детские:
детская фантастика
9.38
рейтинг книги
Часовая битва

Небо для Беса

Рам Янка
3. Самбисты
Любовные романы:
современные любовные романы
5.25
рейтинг книги
Небо для Беса

#Бояръ-Аниме. Газлайтер. Том 11

Володин Григорий Григорьевич
11. История Телепата
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 11

Пистоль и шпага

Дроздов Анатолий Федорович
2. Штуцер и тесак
Фантастика:
альтернативная история
8.28
рейтинг книги
Пистоль и шпага

Дракон - не подарок

Суббота Светлана
2. Королевская академия Драко
Фантастика:
фэнтези
6.74
рейтинг книги
Дракон - не подарок

Её (мой) ребенок

Рам Янка
Любовные романы:
современные любовные романы
6.91
рейтинг книги
Её (мой) ребенок

Не грози Дубровскому! Том III

Панарин Антон
3. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том III