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

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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

substring(string string1, number offset number length). Возвращает lengthсимволов из строки, начиная со смещения offset;

substring-before(string string1, string string2). Возвращает часть строки string1до первого вхождения строки string2;

substring-after(string string1, string string2). Возвращает часть строки string1после первого вхождения string2;

string-length(string string1). Возвращает количество символов в строке string1;

normalize-space(string string1). Возвращает строку string1после отбрасывания лидирующих и завершающих символов-разделителей и замены нескольких последовательных разделителей на один пробел;

translate(string string1, string string2, string string3). Возвращает строку string1, в которой все вхождения символов в строке string2заменены на соответствующие символы в строке string3;

concat(string string1, string string2, ...). Возвращает конкатенацию (объединение) всех строк.

Есть еще одна строковая функция, о которой вам следует знать, входящая не в XPath, а в XSLT:

format-number(number number1, string string2, string string3). Возвращает строку, содержащую число number1в виде форматированной строки, используя string2в качестве форматирующей строки (форматирующие строки создаются так же, как для метода Java java.text.DecimalFormat) и string3как возможную строку локализации.

В листинге 4.9 я выбираю текстовые узлы, в которых текст начинается с 'Е', чтобы выбрать Earth (Земля), и добавляю текст '(the World)' (мир), получая 'Earth (the World)'. Для этого я применяю предикат " text()[starts-with(., 'Е')]".

Листинг 4.9. Применение функции starts-with

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

.

.

.

</ТD>

(the World)

.

.

.

А вот результат — заметьте, что заголовок для Земли стал "Earth (the World)":

The Planets Table



The Planets Table

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

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

Рис 42Применение текстовых предикатов Предикаты фрагменты результирующего - фото 16

Рис. 4.2.Применение текстовых предикатов

Предикаты: фрагменты результирующего дерева

XSLT 1.0 добавляет к поддерживаемым XPath типам данных фрагменты результирующего дерева. Это фрагменты дерева, которые можно присваивать переменным XSLT, они не очень широко распространены. Практически все, что можно с ними сделать, — это вычислить их строковое значение. В рабочем проекте XSLT 1.1 их поддержка была удалена, поэтому, видимо, в XSLT 2.0 их уже не будет.

Сокращенный синтаксис предикатов

Выражения предикатов можно сокращать, опуская " position()=". Например, [position()=3]становится [3], [position()=last()]становится [last()]и т.д. С использованием сокращенного синтаксиса применять выражения XPath в предикатах становится существенно проще. Вот ряд примеров:

PLANET[2]. Возвращает второго ребенка контекстного узла;

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

/PLANETS/PLANET[2]/NAME[1]. Возвращает первый элемент второго элемента элемента ;

PLANET[5][@UNITS="million miles"]. Возвращает пятого ребенка контекстного узла, только если у него имеется атрибут UNITSсо значением " million miles". Это выражение можно также написать как PLANET[@UNITS="million miles"][5].

На этом мы заканчиваем рассмотрение трех частей образцов шага: осей, условий узлов и предикатов. Это строительные блоки образцов выбора. Лучше всего изучить создание образцов на примере, и многие примеры мы вскоре рассмотрим. Сначала, однако, важно рассмотреть две небольшие темы. Как вы помните из формального определения образцов выбора, можно помимо образцов шага, создавать образцы, выбирающие элементы по идентификатору (ID) или ключу.

Выбор по ID

В дополнение к созданию образцов из образцов шага, задающих ось, условие узла и предикат, можно применять и образец id()для выбора элементов с определенным значением ID. Для работы с этим образцом необходимо задать элементам атрибут ID, который должен быть объявлен с типом ID, что можно сделать в DTD или схеме документа. В следующем примере правило добавляет текст всех элементов, имеющих ID " favorite":

Вот как может выглядеть объявление DTD для planets.xml, в котором объявляется ID и его значение устанавливается в " favorite":

Mercury

.0553

58.65

1516

.983

43.4

.

.

.

Ряд процессоров XSLT не может осуществлять выбор по ID, потому что они не читают DDS или схему XML. (Возможность доступа к информации ID должна быть включена в XSLT 2.0.) Но есть альтернатива: можно осуществлять выбор по ключу.

ВОЗМОЖНАЯ ПОДДЕРЖКА IDREF

Помимо упрощения работы с ID, в XSLT 2.0 W3C даже рассматривает возможность включения поддержки IDREF. В частности, по заданному ID процессор XSLT может предоставить список всех элементов с атрибутом IDREF или IDREFS, ссылающихся на этот ID. (Заметьте, что сейчас это тоже можно сделать при помощи элемента и образца "key()".)

Выбор по ключу

Ключи дают простой способ идентифицировать элементы; конкретные ключи можно выбрать при помощи образца " key()". Работа с ключами подробно обсуждается в главе 9, но здесь я также приведу небольшой пример.

Для создания ключа служит элемент . Это элемент верхнего уровня, поэтому он используется вне шаблонов и как дочерний элемент . В следующем примере я при помощи ключа выбираю планеты, чей атрибут COLOR(цвет) установлен в " BLUE" (голубой), что означает Землю:

.

.

.

Earth

1

1

2107

1

128.4

Теперь я могу создать ключ с именем COLOR, который выбирает элементы , проверяя их атрибут COLOR:

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

.

.

.

Теперь при помощи образца " key()" можно выбрать элементы с атрибутом COLORсо значением " BLUE":

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

The Planets Table



The Planets Table

Name Mass Radius Day

.

.

.

А вот результат — как видите, единственной планетой, удовлетворявшей используемому образцу, была Земля (Earth).

The Planets Table



The Planets Table

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

Применение операции Or

При помощи операции Or (или), |, можно осуществлять выбор по нескольким возможным образцам, что очень удобно с ростом сложности документов. В следующем примере я хочу отобразить элементы и полужирным, что задается тегом HTML <���В>. Для выбора либо элементов , либо в новом правиле я использую операцию Or:

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

Интервал:

Закладка:

Сделать


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

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




XSLT отзывы


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


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

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