Стивен Холзнер - XSLT
- Название:XSLT
- Автор:
- Жанр:
- Издательство:Питер
- Год:2002
- Город:Санкт-Петербург
- ISBN:5-94723-271-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стивен Холзнер - XSLT краткое содержание
Эта книга посвящена XSLT — мощным и удобным системам преобразования документов. В ней не только рассматривается весь синтаксис XSLT, от основ до специальных аспектов, но и подробно излагаются современные способы использования XSLT.
Вы найдете сотни практических примеров, таких как осуществление преобразований XSLT на web-cepвepax, подключение к базам данных и использование браузеров для осуществления преобразований на лету.
Книга рассчитана на всех, кто хочет изучать XSLT и использовать его на практике
XSLT - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
• select
(обязательный). Выходное значение. Устанавливается в выражение;
• disable-output-escaping (необязательный). Указывает, что символы, такие как >
, будут отправляться в выходной поток как есть, не изменяясь на >
. Значения этого атрибута: yes
или no
.
Элемент всегда пуст.
При помощи атрибута select
можно указать, значение какого узла требуется получить. Например, вам может потребоваться значение узла в каждом элементе , то есть текст, заключенный в этом узле. Это можно сделать следующим образом (листинг 2.4).
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Значение узла, содержащего текст, будет просто текстом, поэтому результат применения этой таблицы стилей к planets.xml
следующий:
Mercury
Venus
Earth
</НТМL>
АТРИБУТ DISABLE-OUTPUT-ESCAPING
Атрибут disable-output-escaping элемента более подробно рассмотрен в главе 3.
Предположим, нам нужно осуществить нечто более сложное — например, преобразовать данные из planets.xml
в HTML-таблицу в новом файле planets.html
(рис. 2.1), как мы видели в главе 1. Теперь это можно сделать при помощи .

Рис. 2.1.Planets.html в Internet Explorer
Здесь важно учесть один момент. В planets.xml
формально не задан порядок элементов , , и , однако важно, чтобы эти элементы обрабатывались в определенном порядке в соответствии с заголовками таблицы. Поэтому я буду использовать элементы в том порядке, в котором они требуются в таблице HTML.
Таким образом, чтобы создать HTML-таблицу, изображенную на рис. 2.1, я сначала ищу элемент и затем заменяю его на HTML для создания самой HTML-таблицы. Элемент — дочерний элемент корневого узла, и поскольку на корневой узел можно сослаться через «/», на элемент можно сослаться непосредственно через " /PLANETS
", без необходимости предварительно применять шаблон для корневого узла. Это пример выражения XPath, большое число подобных мы также увидим в главе 4.
Ниже приведен пример того, как я начал создавать HTML-таблицу путем выбора элемента непосредственно как " /PLANETS
" — заметьте, что для применения шаблонов к любым дочерним узлам я использовал :
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
The Planets Table
The Planets Table
Name | Mass | Radius | Day |
.
.
.
Каждый дочерний узел имеет дочерние узлы , , и , и я хочу обрабатывать их именно в таком порядке — для того чтобы они добавлялись в HTML-таблицу в соответствии с заголовками таблицы. Для задания порядка их обработки я поместил элементы (листинг 2.5).
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
The Planets Table
The Planets Table
Name | Mass | Radius | Day |
Это все, что нам нужно; вот результат:
The Planets Table
The Planets Table
Name | Mass | Radius | Day |
Mercury | .0553 | 1516 | 58.65 |
Venus | .815 | 3716 | 116.75 |
Earth | 1 | 2107 | 1 |
Это практически то, что требовалось. Если взглянуть на рис. 2.2, видно, что в этом HTML-файле не выведены значения атрибута UNITS
, который присутствует у каждого элемента (кроме атрибута ) в planets.xml
:

Рис. 2.2.Planets.html без атрибутов в Internet Explorer
Mercury
.0553
58.65
1516
.983
43.4
.
.
.
В главе 3, в которой шаблоны рассмотрены более подробно, будет показано, как извлекать значения атрибутов из элементов XML.
Однако перед тем, как начать углубляться в работу с шаблонами, необходимо еще изучить достаточно много материала о таблицах стилей в общем. Например, в рабочий проект XSLT 1.1 включена поддержка рекомендации XML Base, а это значит, что она также появится и в XSLT 2.0.
Поддержка XML Base
Одним из пунктов, добавленных в рабочий проект XSLT 1.1, была поддержка спецификации W3C XML Base. На момент написания книги спецификация XML Base существует в форме предлагаемой рекомендации (Proposed Recommendation), датированной 20 декабря 2000 г.; текущую версию документа можно найти по адресу www.w3.org/TR/xmlbase/.
Эта спецификация позволяет обеспечивать для документов XML и XSL базовый идентификаторы URI аналогично элементу HTML . (Фактически, благодаря элементу HTML существует XBase: W3C взял на себя обязательство дать XML всю мощь ссылочной модели HTML 4.0 и затем развивать ее.) Как вы помните, одним из свойств элементов XSL является их базовый URI, и теперь его можно устанавливать при помощи XML Base. Однако пока ни один из известных мне процессоров XSLT не поддерживает XML Base.
Здесь будет приведен только обзор работы с XML Base: для установки базового URI XML-документа можно использовать атрибут xml:base
. Другие идентификаторы URI документа затем вычисляются, используя это значение в качестве базы. Заметьте, что xml:base
использует пространство имен xml
, которое предопределено в XML как " http://www.w3.org/XML/1998/namespace
". В следующем примере используются ссылки XML, XML links (или XLinks):
xml:base="http://www.starpowder.com/"
xlink:type="simple" xlink:show="new" xlink:href="reviews.xml">
Mr. Blandings Builds His Dream House
Используя значение, присвоенное атрибуту xml:base
, URI атрибута xlink:href
, " reviews.xml
" раскрывается в полный URI " http://www.starpowder.com/reviews.xml
". Подобным образом можно при помощи xml:base задать базовый URI для документа или конкретного элемента.
В рабочем проекте XSLT 1.1 с каждым узлом связан его URI, называемый базовым URI, который используется для раскрытия значений атрибута, представляющих относительные URI, в абсолютные URI. Вот как следует определять базовый URI:
• базовый URI корневого узла — это URI документа;
• базовый URI узла элемента— это базовый URI, заданный в элементе атрибутом xml:base
(если таковой существует), или базовый URI элемента- родителя элемента в документе, или внешняя сущность (если существует), или базовый URI сущности документа или внешней сущности, содержащей элемент;
• базовый URI для узла инструкции обработки — это URI, который будет применен к ссылке URI в содержимом инструкции обработки. В соответствии со спецификацией XML Base, базовым URI для ссылки URI, появляющейся в содержимом инструкции обработки, является базовый URI родительского элемента инструкции обработки (если таковой имеется) в пределах сущности документа или внешней сущности, или базовый URI сущности документа или внешней сущности, содержащей инструкцию обработки;
• базовым URI для текстового узла, узла комментария или узла атрибута является базовый URI родителя этого узла;
Читать дальшеИнтервал:
Закладка: