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

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

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

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

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

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

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

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

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

Интервал:

Закладка:

Сделать

The Planets

The first three planets are: Mercury, Venus, and Earth.

Функции XPath для работы со строками

В XSLT доступны следующие функции XPath для работы со строками:

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

contains(string string1, string string2). Возвращает истину, если первая строка содержит (contains) вторую строку;

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

starts-with(string string1, string string2). Возвращает истину, если первая строка начинается (starts with) со второй подстроки;

string(object). Преобразует объект в строку;

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

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

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

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

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

В последующих разделах я рассмотрю каждую из этих функций.

concat()

Функция concatобъединяет вместе все переданные ей строки и возвращает полученную строку:

concat(string string1, string string2, ...)

В качестве примера рассмотрите разработанный ранее вариант таблицы стилей planets.xsl, отображающей значения элементов и значения атрибутов UNITS, в котором шаблоны применяются следующим образом:

Такой код отображает строковое значение, контекстный узел, пробел и строковое значение атрибута UNITS. Но код можно значительно сократить при помощи функции concat(листинг 8.8).

Листинг 8.8. Применение функции concat

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

.

.

.

contains()

Функция containsпроверяет, содержится ли одна строка внутри другой; если это так, функция возвращает истину, если нет — ложь. Функция применяется следующим образом:

boolean contains(container-string, contained-string)

Следующий пример взят из главы 7; в этом случае я хочу осуществить поиск слова «miles» во всех атрибутах, и если оно будет найдено, добавить в результирующий документ текст «You should switch to kilometers.» (Нужно перевести в километры.):

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

.

.

.

.

.

.

You should switch to kilometers.

Вот результирующий документ:

The Planets Table



The Planets Table

Name Mass Radius Day Distance
Mercury .0553 (Earth = 1) 1516 You should switch to kilometers. 58.65 days 43.4 You should switch to kilometers.
Venus .815 (Earth = 1) 3716 You should switch to kilometers. 116.75 days 66.8 You should switch to kilometers.
Earth 1 (Earth = 1) 2107 You should switch to kilometers. 1 days 128.4 You should switch to kilometers.

normalize-space()

Функция normalize-spaceудаляет лидирующие и завершающие символы-разделители и сжимает все внутренние идущие подряд разделители в один пробел, возвращая полученную строку. Функция применяется следующим образом:

string normalize-space(string?)

В следующем примере я добавил дополнительные пробелы в атрибут UNITSэлемента Меркурия:

Mercury

.0553

58.65

1516

.983

43.4

.

.

.

Функция normalize-spaceпоможет удалить лишние пробелы в таблице стилей:

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

.

.

.

.

.

.

И вот результат — обратите внимание на то, что лишние пробелы убраны:

The Planets Table



The Planets Table

.

.

.

starts-with()

Как можно догадаться по имени (начинается с), функция starts-withпроверяет, начинается ли одна строка с другой.

boolean starts-with(string-to-examine, possible-start-string)

В этом примере из главы 4 при помощи starts-withвыбираются текстовые узлы, текст в которых начинается с «Е», для того чтобы выбрать Earth (Землю). Затем в описание Земли добавляется текст «(the World)» (мир), и получается «Earth (the World)»:

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

Name Mass Radius Day
Mercury .0553 (Earth = 1) 1516 miles 58.65 days

.

.

.

(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

string()

Функция stringпросто преобразует переданный ей объект в строку. Функция применяется следующим образом:

string string(object?)

Как правило, необходимости в данной функции не возникает, потому что преобразования такого рода осуществляются автоматически. Мне на ум приходит всего несколько примеров, когда эта функция действительно нужна. Пусть, например, по какой-то причине вы поместили в каждый элемент в planets.xmlпо три элемента и хотите использовать в качестве фактического названия планеты только первый элемент :

Mercury

Venus

Earth

.0553

58.65

1516

.983

43.4

Venus

Earth

Mercury

Planet of Love.

.815

116.75

3716

.943

66.8

Earth

Mercury

Venus

The planet you're standing on.

1

1

2107

1

128.4

Предположим теперь, что вам нужно выбрать определенную планету, например, Венеру (Venus). Такая проверка не пройдет, потому что NAMEвернет набор узлов из всех дочерних элементов контекстного узла, а так как у каждой планеты есть элемент со значением «Venus», такое условие всегда будет истиной:

Для того чтобы проверить первый элемент в каждом элементе , можно воспользоваться функцией string, поскольку она возвращает не набор узлов, а строку:

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

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

Интервал:

Закладка:

Сделать


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

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




XSLT отзывы


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


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

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