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

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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

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

.

.

.

Вот результаты; заметьте, что значения имени и массы заключены в элементы <���В>:

The Planets Table

.

.

.

Mercury .0553 1516 miles 58.65 days Venus .815 3716 miles 116.75 days Earth 1 2107 miles 1 days

Операцию | можно применять к любым допустимым образцам — например, в таких выражениях, как " PLANET|PLANET//NAME"; можно использовать несколько операций | — например, " NAME|MASS|DAY" и т.п.

Примеры образцов

Изучать образцы лучше всего на примерах. Предположим, что нам требуется преобразовать planets.xmlв planets.html, но сохранить только первую планету, Меркурий. Это можно сделать при помощи предиката [position()<2], так как позиция первой планеты равна 1, следующей — 2, и т.д. Заметьте, однако, что <; является управляющим символом для процессоров XSLT, начинающим разметку, поэтому вместо < необходимо использовать <. И отметьте, что для того чтобы убрать из planets.xmlдругие элементы, для них нужно предоставить пустой шаблон, что можно сделать при помощи предиката [position()>=2](листинг 4.10).

Листинг 4.10. Выбор только Меркурия

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 (Earth = 1) 1516 miles 58.65 days

В следующем примере в элемент Земли были добавлены атрибуты COLOR(цвет) и POPULATED(населена):

Earth

1

1

2107

1

1284

Как выбрать только элементы, имеющие оба атрибута, COLORи POPULATED? Можно применить предикат " [@COLOR and @POPULATED]". Чтобы убрать другие элементы — так, чтобы правило по умолчанию не поместило их текст в результирующий документ, — можно применить предикат " [not(@COLOR) or not(@POPULATED)]", как показано в листинге 4.11.

Листинг 4.11. Выбор только элементов с двумя атрибутами COLOR и POPULATED

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

Colorful, Populated Planets



Colorful, Populated Planets

Name Mass Radius Day

А вот результат:

Colorful, Populated Planets



Colorful, Populated Planets

Name Mass Radius Day
Earth 1 (Earth = 1) 2107 miles 1 days

Этот документ показан на рис. 4.3.

Рис 43Применение предикатов XPath для проверки атрибутов В следующем примере - фото 17

Рис. 4.3.Применение предикатов XPath для проверки атрибутов

В следующем примере я копирую planets.xmlв новый XML-документ и изменяю текст в элементе Венеры на " The Planet of Love" (планета любви). Для этого я сначала копирую в результирующий документ все узлы и атрибуты:

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

.

.

.

Теперь я добавлю новое правило, выбирающее элементы с текстом " Venus" (Венера) по образцу " NAME[text()='Venus']". Хотя элементы удовлетворяют обоим правилам этой таблицы стилей, правило с образцом " NAME[text()='Venus']" осуществляет более узкий выбор, поэтому для элемента Венеры процессор XSLT применит его:

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

The Planet of Love

И вот результат:

Mercury

.0553

58.65

1516

.983

43.4

The Planet of Love

.815

116.75

3716

.943

66.8

Earth

1

1

2107

1

128.4

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

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

The Planet of Love

Имеет смысл привести как можно больше примеров — примеров XPath или образцов выбора никогда не бывает слишком много. Ниже приведен содержательный ряд примеров образцов выбора:

PLANETвыбирает дочерние элементы контекстного узла;

/PLANETSвыбирает корневой элемент документа;

*выбирает все дочерние элементы контекстного узла;

PLANET[3]выбирает третьего ребенка контекстного узла;

PLANET[last()]выбирает последнего ребенка контекстного узла;

PLANET[NAME]выбирает детей контекстного узла, имеющих детей ;

PLANET[DISTANCE]/NAMEвыбирает все элементы элементов , содержащих по крайней мере один элемент ;

PLANET[DISTANCE]/PLANET[DAY]выбирает все элементы элементов , в которых элемент содержит по крайней мере один элемент , и элемент содержит по крайней мере один элемент ;

РLANETS[РLАNET/DAY]выбирает все элементы , содержащие элементы как минимум с одним элементом ;

PLANET[DISTANCE][NAME]выбирает все элементы , имеющие элементы и ;

PLANETS/PLANET[last()]выбирает последний элемент в каждом элементе ;

*/PLANETвыбирает всех внуков контекстного узла;

/PLANETS/PLANET[3]/NAME[2]выбирает второй элемент третьего элемента элемента ;

//PLANETвыбирает всех потомков корня документа;

PLANETS//PLANЕТвыбирает потомков элемента детей элемента контекстного узла;

//PLANET/NAMEвыбирает все элементы , дочерние по отношению к родителю ;

РLАNETS//PLАNET/DISTАNСЕ//РЕRIНЕLIONвыбирает элементы везде внутри элемента элемента , везде внутри элемента ;

@UNITSвыбирает атрибут UNITSконтекстного узла;

@*выбирает все атрибуты контекстного узла;

*[@UNITS]выбирает все элементы с атрибутом UNITS;

DENSITY/@UNITSвыбирает атрибут UNITSв элементах ;

PLANET[not(@COLOR) or not(@SIZE)]выбирает элементы , не имеющие обоих атрибутов COLORи SIZE;

PLANETS[@STAR="Sun"]//DENSITYвыбирает любой элемент с элементом-предком , имеющим атрибут STARсо значением " Sun";

PLANET[NAME="Venus"]выбирает детей контекстного узла, имеющих детей с текстом " Venus";

PLANET[NAME[1]="Venus"]выбирает все элементы , у которых в первом элементе содержится текст в " Venus";

DAY[@UNITS!="million miles"]выбирает все элементы , атрибут UNITSкоторых не равен " million miles";

PLANET[@UNITS="days"]выбирает всех детей контекстного узла, имеющих атрибут UNITSсо значением " days";

PLANET[6][@UNITS="days"]выбирает шестого ребенка контекстного узла, только если у этого ребенка есть атрибут UNITSсо значением " days", — что также можно записать как PLANET[@UNITS="days"][6];

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

Интервал:

Закладка:

Сделать


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

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




XSLT отзывы


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


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

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