Стивен Холзнер - XSLT
- Название:XSLT
- Автор:
- Жанр:
- Издательство:Питер
- Год:2002
- Город:Санкт-Петербург
- ISBN:5-94723-271-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стивен Холзнер - XSLT краткое содержание
Эта книга посвящена XSLT — мощным и удобным системам преобразования документов. В ней не только рассматривается весь синтаксис XSLT, от основ до специальных аспектов, но и подробно излагаются современные способы использования XSLT.
Вы найдете сотни практических примеров, таких как осуществление преобразований XSLT на web-cepвepax, подключение к базам данных и использование браузеров для осуществления преобразований на лету.
Книга рассчитана на всех, кто хочет изучать XSLT и использовать его на практике
XSLT - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
• text()
возвращает все дочерние текстовые узлы контекстного узла;
• @UNITS
возвращает атрибут UNITS
контекстного узла;
• @*
возвращает все атрибуты контекстного узла;
• PLANET[3]
возвращает третьего ребенка контекстного узла;
• PLANET[last()]
возвращает последнего ребенка контекстного узла;
• */PLANET
возвращает всех внуков контекстного узла;
• /PLANETS/PLANET[3]/NAME[2]
возвращает второй элемент третьего элемента элемента ;
• //PLANET
возвращает всех потомков корня документа;
• PLANETS//PLANET
возвращает элементы-потомки дочерних элементов контекстного узла;
• //PLANET/NAME
возвращает все элементы , у которых есть родитель ;
• .
возвращает сам контекстный узел;
• .//PLANET
возвращает элементы-потомки контекстного узла;
• ..
возвращает родителя контекстного узла;
• ../@UNITS
возвращает атрибут UNITS
родителя контекстного узла;
• .//..
возвращает всех родителей потомка контекстного узла и родителя контекстного узла;
• PLANET[NAME]
возвращает детей контекстного узла, у которых есть дети ;
• PLANET[NAME="Venus"]
возвращает детей контекстного узла, у которых есть дети с текстом, равным «Venus»;
• PLANET[@UNITS="days"]
возвращает всех детей контекстного узла, у которых есть атрибут UNITS
со значением « days
»;
• PLANET[6][@UNITS="days"]
возвращает шестого ребенка контекстного узла, только если у этого ребенка есть атрибут UNITS
со значением «days». Можно также написать PLANET[@UNITS="days"][6]
;
• PLANET[@COLOR and @UNITS]
возвращает всех детей контекстного узла, у которых есть атрибут COLOR
и атрибут UNITS
;
• " //PLANET[not(.=preceding::PLANET)]
" выбирает все элементы , значение которых отлично от значения любого предшествующего элемента ;
• *[1][self::NAME]
выбирает любой элемент , который является первым ребенком своего родителя;
• *[position() < 5][@UNITS]
выбирает первых пятерых детей контекстного узла, у которых есть атрибут UNITS
.
Проверка выражений XPath
В пакет Xalan входит удобная программа-пример, ApplyXPath.java, позволяющая применить выражение XPath к документу и посмотреть на результат, что очень помогает при тестировании. Для запуска этого примера вам нужно будет скомпилировать ApplyXPath.java
в ApplyXPath.class
при помощи утилиты java.exe, входящей в поставку Java.
В качестве примера я применю выражение XPath « PLANET/NAME
» к planets.xml
при помощи ApplyXPath.class
. Ниже показан результат, отображающий все элементы , дочерние по отношению к элементам (теги добавлены программой ApplyXPath):
%java ApplyXPath planets.xml PLANET/NAME
MercuryVenusEarth
XPath 2.0
XPath находится в стадии обновления, и в него включаются средства поддержки XSLT 2.0 (см. www.w3.org/TR/xpath20req). Задачи XPath 2.0 следующие:
• упрощение операций с содержимым типов, поддерживаемых схемой XML;
• упрощение операций со строковым содержимым;
• поддержка соответствующих стандартов XML;
• улучшение удобства использования;
• улучшение функциональной совместимости;
• улучшение поддержки международных языковых средств;
• сохранение обратной совместимости;
• повышенная эффективность процессора.
Следующий список дает обзор требований XPath. Главные пункты — поддержка схемы XML и регулярных выражений, что дает средства работы со строками и поиска в строках. (Дополнительную информацию о регулярных выражениях можно почерпнуть по адресу http://www.perldoc.com/perl5.6/pod/perlre.html.) В соответствии с W3C, XPath 2.0:
• должен поддерживать архитектуру XML W3C, хорошо взаимодействуя с другими стандартами в семействе XML;
• должен выражать свою модель данных в терминах информационного множества (infoset) XML;
• должен предоставлять общий ключевой синтаксис для XSLT 2.0 и XML Query language 1.0;
• должен поддерживать явное сравнение « for any
» или « for all
» и синтаксис равенства;
• должен расширять множество функций агрегации (например, пользователи XSLT часто требовали добавить функции min()
и max()
);
• должен сохранять обратную совместимость с XPath 1.0;
• должен предоставлять функции пересечения и разности то есть — XPath 1.0 поддерживает объединение двух наборов узлов, и к этому должны быть добавлены функции пересечения и разности;
• должен поддерживать операцию унарного плюса (поскольку в схеме XML у десятичных чисел может присутствовать лидирующий плюс);
• должен улучшать удобство использования;
• должен снизить ограничения на шаги расположения;
• должен реализовывать условную операцию, оперирующую тремя выражениями — выражением 1 (логическая операция), выражением 2 и выражением 3. Если выражение 1 принимает значение «истина», должно вычисляться выражение 2, а если выражение 1 принимает значение «ложь», должно вычисляться выражение 3;
• должен определять последовательный синтаксис для подвыражений, обрабатывающих коллекции элементов;
• должен поддерживать дополнительные строковые функции. Например, W3C рассматривает вопрос добавления средств для замены в строках, заполнения символами и преобразований регистра;
• должен поддерживать функции агрегации при применении к коллекциям. Например, некоторым пользователям XPath 1.0 требовалось применить такую функцию агрегации, как sum
, к значениям выражений, примененных к наборам узлов;
• должен поддерживать регулярные выражения для поиска в строках с использованием нотации регулярных выражений, установленной в схеме XML;
• должен поддерживать элементарные типы данных схемы XML. То есть в дополнение к типам, поддерживаемым моделью данных XPath 1.0, — строке, числу, логическому значению и набору узлов — модель данных XPath 2.0 должна поддерживать элементарные типы данных схемы XML;
• должен поддерживать представления чисел с плавающей точкой одинарной и двойной точности, поддерживаемые схемой XML, которая использует научную нотацию;
• должен определять подходящий набор функций для работы пользователя с элементарными типами данных схемы XML;
• должен добавлять в XPath тип данных «список» (поскольку схема XML позволяет определять простые типы, унаследованные от списка);
• должен поддерживать доступ к значениям простых типов элементов и атрибутов. Поскольку схемы XML представляют много новых типов, XPath 2.0 должен поддерживать доступ к собственному, простого типа, значению элемента или атрибута;
• должен определять поведение операторов для нулевых аргументов;
• должен иметь средства для выбора элементов или атрибутов на основе явного типа схемы XML;
• должен иметь средства для выбора элементов или атрибутов на основе иерархии типов схемы XML;
• должен иметь средства для выбора элементов на основе групп подстановки схемы XML;
Читать дальшеИнтервал:
Закладка: