Стивен Холзнер - XSLT

Тут можно читать онлайн Стивен Холзнер - XSLT - бесплатно полную версию книги (целиком) без сокращений. Жанр: Интернет, издательство Питер, год 2002. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Стивен Холзнер - XSLT краткое содержание

XSLT - описание и краткое содержание, автор Стивен Холзнер, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Эта книга посвящена XSLT — мощным и удобным системам преобразования документов. В ней не только рассматривается весь синтаксис XSLT, от основ до специальных аспектов, но и подробно излагаются современные способы использования XSLT.

Вы найдете сотни практических примеров, таких как осуществление преобразований XSLT на web-cepвepax, подключение к базам данных и использование браузеров для осуществления преобразований на лету.

Книга рассчитана на всех, кто хочет изучать XSLT и использовать его на практике

XSLT - читать онлайн бесплатно полную версию (весь текст целиком)

XSLT - читать книгу онлайн бесплатно, автор Стивен Холзнер
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Шаги расположения, строительные блоки путей расположения, во многом похожи на образцы шага (step patterns), формирующие образцы выбора, которые мы видели в главе 4. В частности, шаг расположения образован из оси (axis), условия узла (node test) и предикатов (которых может и не быть) по такому образцу: axis::nodetest[predicate]. Например, в выражении ancestor::NAME[position() > 100], ancestor— это имя оси, NAME— условие узла и [position() >100]— предикат. (Предикат сам содержит законченное выражение XPath, обычно возвращающее логическое значение.) Пути расположения создаются при помощи одного или более шагов расположения, таких как /descendant::PLANET/child::NAME, который выбирает все элементы с родителем .

Шаги XPath похожи на образцы шага из главы 4, так как общий их вид одинаков — axis::nodetest[predicate]— но в данном случае нужно рассмотреть значительно больше материала. Например, осей теперь тринадцать, а не две.

Шаги расположения XPath, часть 1: оси

В пути расположения ancestor::NAME, адресующем элемент , который является предком контекстного узла, ancestorвыступает осью. XPath поддерживает много различных осей, ниже приведен полный список:

• ось ancestorсодержит предков (ancestor) контекстного узла, то есть родителей контекстного узла, родителей этих родителей и т.д., вплоть до корневого узла (включая его);

• ось ancestor-or-selfсодержит контекстный узел и его предков;

• ось attributeсодержит атрибуты контекстного узла;

• ось childсодержит детей контекстного узла;

• ось descendantсодержит потомков (descendant) контекстного узла, то есть его детей, детей этих детей и т.д.;

• ось descendant-or-selfсодержит контекстный узел и его потомков;

• ось followingсодержит все узлы в том же документе, такие же, как контекстный узел, встретившиеся после контекстного узла;

• ось following-siblingсодержит всех последующих братьев контекстного узла. «Брат» — узел, расположенный на том же уровне, что и контекстный узел;

• ось namespaceсодержит узлы пространств имен контекстного узла;

• ось parentсодержит родителя контекстного узла;

• ось precedingсодержит все узлы до контекстного узла;

• ось preceding-siblingсодержит всех предшествующих «братьев» контекстного узла;

• ось selfсодержит контекстный узел.

В следующем примере шаблона я воспользовался осью descendantдля выбора потомков контекстного узла, куда входят дочерние узлы, узлы-внуки, узлы-правнуки и т.д.:

В этой главе мы рассмотрим все перечисленные оси. В данном примере осью является descendant, а имена элементов NAME, MASSи DAY— это условия узлов.

Шаги расположения XPath, часть 2: условия узлов

При создании образцов в качестве условий узлов (node test) можно использовать имена узлов или символ подстановки * для выбора любого узла элемента. Например, выражение child::*/child::NAMEвыбирает все элементы , являющиеся правнуками контекстного узла. В XPath кроме имен и символа подстановки можно также применять, как и в образцах выбора, следующие условия узлов:

• условие узла comment()выбирает узлы комментария;

• условие узла node()выбирает узел любого типа;

• условие узла processing-instruction()выбирает узел инструкции обработки. В скобках можно указать название выбираемой инструкции обработки;

• условие узла text()выбирает текстовый узел

Например, в листинге 7.2 таблица стилей находит в документе все комментарии при помощи условия узла comment()и создает для каждого комментария новый, (Внимание! Найден комментарий!).

Листинг 7.2. Выбор комментариев

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Warning: comment found!

При применении этой таблицы стилей к planets.xmlполучается следующий документ:

Шаги расположения XPath, часть 3: предикаты

Предикат в шаге расположения XPath сам содержит заключенное в скобки выражение XPath, которое вычисляется в истину или ложь. Когда результатом вычисления выражения является строка, XPath считает ее истиной, если строка не пуста. Когда результат — набор узлов, XPath считает его истиной, если он не пуст. Когда результат — число, то общий результат будет считаться истиной, если это число совпадает с контекстной позицией — например, PLANET[3]будет истиной тогда и только тогда, когда истиной будет PLANET[position()=3].

Предикаты содержат выражения XPath наподобие тех, которые встречались нам на протяжении этой главы: редко когда выражение возвращает набор узлов, главным образом возвращаются строки, числа или логические значения. Например, путь расположения preceding-sibling::MASS[position()*4]выбирает четыре предыдущих элемента-брата для контекстного узла.

Применение осей XPath

К этому моменту мы рассмотрели три части шагов расположения — ось, условие узла и предикат. Вы должны быть знакомы с этими элементами по проделанной нами работе с образцами выбора, но обратите внимание на ось в предыдущем примере — preceding-sibling. До сих пор мы видели только оси, выбиравшие образцы XSLT — оси childи attribute; теперь же мы рассмотрим новые оси, возможные в полных выражениях XPath, и начнем с оси ancestor.

Применение оси ancestor

Ось ancestor(предок) содержит всех предков контекстного узла, включая родителей, дедушек, прадедушек и т.д. Эта ось всегда содержит корневой узел — если только контекстным узлом не является сам корневой узел.

Взгляните на листинг 7.3, в котором при помощи оси ancestorосуществляется поиск имен (хранимых в элементе ) всех предков элементов .

Листинг 7.3. Применение оси ancestor

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Вот результат применения этой таблицы стилей к planets.xml:

Mercury

Venus

Earth

Применение оси ancestor-or-self

Ось ancestor-or-selfсодержит всех предков контекстного узла, а также сам контекстный узел. Это означает, помимо прочего, что такая ось всегда содержит корневой узел.

В листинге 7.4 добавлены атрибуты AUTHORсо значением «Steve» в весь документ.

Листинг 7.4. planets.xml с атрибутами AUTHOR

Mercury

.0553

58.65

1516

.983

43.4

Venus

.815

116.75

3716

.943

66.8

Earth

1

1

2107

1

128.4

Предположим теперь, что я хочу перечислить по имени всех предков элементов , имеющих атрибут AUTHOR, а также текущий элемент , если у него есть атрибут AUTHOR. Это можно сделать при помощи оси ancestor-or-selfи функции local-name(листинг 7.5).

Листинг 7.5. Применение оси ancestor-or-self

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Стивен Холзнер читать все книги автора по порядку

Стивен Холзнер - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




XSLT отзывы


Отзывы читателей о книге XSLT, автор: Стивен Холзнер. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x