Стивен Холзнер - XSLT
- Название:XSLT
- Автор:
- Жанр:
- Издательство:Питер
- Год:2002
- Город:Санкт-Петербург
- ISBN:5-94723-271-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стивен Холзнер - XSLT краткое содержание
Эта книга посвящена XSLT — мощным и удобным системам преобразования документов. В ней не только рассматривается весь синтаксис XSLT, от основ до специальных аспектов, но и подробно излагаются современные способы использования XSLT.
Вы найдете сотни практических примеров, таких как осуществление преобразований XSLT на web-cepвepax, подключение к базам данных и использование браузеров для осуществления преобразований на лету.
Книга рассчитана на всех, кто хочет изучать XSLT и использовать его на практике
XSLT - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
• encoding
(необязательный). Задает кодировку символов. Устанавливается в строковое значение;
• indent
(необязательный). Определяет выравнивание вывода для отображения структуры вложенности. Устанавливается в «yes» или «no»;
• media-type
(необязательный). Задает тип MIME вывода. Устанавливается в строковое значение;
• standalone
(необязательный). Определяет, нужно ли включать в вывод отдельное объявление, и если да, задает его значение. Устанавливается в «yes» или «no».
Этот элемент содержит тело шаблона.
В следующем примере, основанном на упрощенной таблице стилей, я создаю в документе HTML две рамки (frame), и два HTML-документа, которые будут в них отображаться, frame1.html
и frame2.html
. Первую рамку и документ, который в ней появится, frame1.html
, я создам при помощи следующим образом (заметьте, что здесь я устанавливаю атрибут version в «1.1», поскольку мы используем возможность, входящую только в рабочий проект XSLT 1.1, но «1.1», вероятно, не будет правильным значением атрибута version
в долгосрочном периоде; если элемент будет включен в XSLT 2.0, версию следует установить в «2.0»):
Two Frames
This is frame 1.
.
.
.
После этого я могу создать вторую рамку и документ для вывода в нее, frame2.html
(листинг 6.10).
Two Frames
This is frame 1.
This is frame 2.
ПРИМЕР ТОЛЬКО ДЛЯ XSLT 1.1
Обратите внимание на то, что этот пример предназначен только для рабочего проекта XSLT 1.1. Ни один из известных мне доступных процессоров XSLT пока не обрабатывает элемент .
Элемент : создание объявлений пространств имен
В XSLT 2.0 включен еще один новый элемент: , позволяющий добавлять в результирующий документ объявления пространств имен. Однако на текущий момент больше об этом элементе ничего не известно, так что я не могу дать здесь более подробную информацию. Следите за web-узлом W3C.
Элемент : создание наборов атрибутов
Иногда при создании нового элемента возникает потребность добавить в него сразу несколько атрибутов. Существует простой способ сделать это при помощи элемента . У этого элемента два атрибута:
• name
(обязательный). Имя набора атрибутов. Устанавливается в QName
;
• use-attribute-sets
(необязательный). Имена других наборов атрибутов, которые вы хотите включить в этот набор. Устанавливается в список QName
, разделенных символами-разделителями.
Элемент содержит элементы , по одному для каждого нового создаваемого атрибута. При использовании для создания нового набора атрибутов элемента нужно задать имя набору. Затем при создании нового элемента для использования набора атрибутов это имя можно присваивать атрибуту use-attribute-sets
элементов , , и даже самого элемента .
Ранее в текущей главе мы уже рассматривали один пример применения наборов атрибутов в JavaScript при создании шаблона. В том примере я при помощи набора атрибутов задавал все атрибуты HTML-кнопок планет и затем создавал их, используя этот набор атрибутов в элементе :
The Mass Page
BUTTON
()
В результирующем документе такой набор атрибутов был добавлен каждой кнопке HTML:
<���Р></Р>
.
.
.
После этого я устанавливаю нужные правила шаблона (листинг 6.13), оба для режима обработки « fancy
», который выделяет выходные данные полужирным, и не задаю никакого специального режима обработки.
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
The Planets Table
The Planets Table
Name | Mass | Radius | Day |
Вот результат. Заметьте, что одни только данные Земли выделены полужирным:
The Fancy Planets Table
The Fancy Planets Table
</Н1>
Name | Mass | Radius | Day |
Mercury | .0553 (Earth = 1) | 1516 miles | 58.65 days |
Venus | .815 (Earth = 1) | 3716 miles | 116.75 days |
Earth | 1 (Earth = 1) | 2107 miles | 1 days |
Этот документ показан на рис. 6.4.

Рис. 6.4.Применение режимов обработки
Режимы также очень удобны в том случае, когда требуется обработать один и тот же документ более одного раза; классический пример — создание оглавления.
Следующий пример демонстрирует создание оглавления. Я добавил в
planets.xml
оглавление в элементе (table of contents, оглавление), имеющем три элемента для каждой из планет. Заметьте, что здесь мне необходимо применить два шаблона, выбирающие элементы , — один для создания оглавления и еще один для копирования всех элементов в результирующий документ — я использую режимы для того, чтобы их различать. Начну с установки режима в « toc
» и применения шаблона, который поддерживает этот режим и создает оглавление:
xmlns:xsl="http//www.w3.org/1999/XSL/Transform">
.
.
.
.
.
.
Затем я применяю общий шаблон без каких-либо режимов обработки ко всем элементам и атрибутам, копируя их в результирующий документ (листинг 6.14).
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
И, наконец, результат, выводящий planets.xml
с оглавлением:
Mercury
Venus
Earth
Mercury
.0553
58.65
1516
.983
43.4
;
• Узлы пространств имен. Объявление пространства имен. В XPath узел пространства имен добавляется во все элементы для каждого активного пространства имен, включая пространства имен по умолчанию;
• Узлы инструкций обработки. Содержат текст инструкции обработки, не включая ;
• Текстовые узлы. Текст PCDATA. Текстовые узлы по умолчанию в XPath нормализованы, поэтому расположенные рядом текстовые узлы немедленно объединяются.
Для задания узла или набора узлов в XPath служит путь расположения (location path). Путь расположения, в свою очередь, состоит из одного или более шагов расположения (location step), также называемых просто шагами, разделенных / или //. Если путь расположения начинается с /, он называется абсолютным путем расположения, поскольку путь задается от корневого узла; иначе путь называется относительным, начинаясь от контекстного узла.
Читать дальшеИнтервал:
Закладка: