Алексей Валиков - Технология XSLT

Тут можно читать онлайн Алексей Валиков - Технология XSLT - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство БХВ-Петербург, год 2002. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Технология XSLT
  • Автор:
  • Жанр:
  • Издательство:
    БХВ-Петербург
  • Год:
    2002
  • Город:
    Санкт-Петербург
  • ISBN:
    нет данных
  • Рейтинг:
    4.75/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Алексей Валиков - Технология XSLT краткое содержание

Технология XSLT - описание и краткое содержание, автор Алексей Валиков, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Книга посвящена разработке приложений для преобразования XML-документов с использованием XSLT — расширяемого языка стилей для преобразований. Обсуждается применение языков XSLT и XPath в решении практических задач: выводу документов в формате HTML, использованию различных кодировок для интернационализации и, в частности, русификации приложений, вопросам эффективности существующих подходов для решения проблем преобразования. Для иллюстрации материала используется большое количество примеров.

Для начинающих и профессиональных программистов

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

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

Интервал:

Закладка:

Сделать
Листинг 3.25. Входящий документ

0.5

50%

1/2

0.5

1.0

1.5

Примеры сравнений множества узлов с булевым значением:

/values/string = true()true

В этом равенстве множество узлов сравнивается с булевым значением "истины". Множество узлов, выбираемое путем /values/string, приводится к булевому типу. Результатом приведения будет "истина", поскольку множество элементов string, принадлежащих элементу values, непусто. Таким образом, сравнение является проверкой на равенство двух "истин" — и результат, естественно, тоже будет "истиной".

/values/string != boolean(/values/boolean)false

В этом случае мы проверяем множество узлов /values/stringна неравенство булевому значению множества /values/boolean. Второй операнд является "истиной" (поскольку множество элементов boolean, принадлежащих элементу values, не пусто), а значит, все сравнение обратится в "ложь".

/values/string = boolean(/values/booleans)false

В данном случае множество /values/stringсравнивается с булевым значением множества /values/booleans, которое будет "ложью", поскольку это множество будет пустым. Таким образом, результат сравнения также будет "ложью".

/values/strings = boolean(/values/booleans)true

Множества /values/stringsи /values/booleansбудут пустыми, поэтому, сравнивая первое с булевым значением второго, мы получим "истину", так как "ложь" равна "лжи".

Примеры сравнения множества узлов с числом:

/values/number < 1true

Множество узлов /values/numberможет считаться меньше, чем число 1, поскольку первый элемент этого множества имеет строковое значение " 0.5", при приведении которого к числу мы получаем 0.5, что меньше 1.

/values/number > 1true

То же самое множество узлов может считаться также и большим 1, поскольку последний элемент этого множества имеет строковое значение " 1.5", при приведении которого к числу мы получаем 1.5, что больше 1.

/values/number = 1true

Второй элемент множества /values/numberравен 1, то есть и это сравнение будет истинным.

Примеры сравнения множества узлов со строковым значением:

/values/number = '1'false

Множество /values/numberне будет равно строке " 1", поскольку ни один из узлов этого множества не имеет строкового значения " 1".

/values/number = '1.0'true

Множество /values/numberбудет считаться равным строке " 1.0", поскольку второй узел этого множества имеет текстовое значение " 1.0".

/values/number != '1.0'true

Множество /values/numberможет также считаться не равным строке " 1.0", поскольку первый узел этого множества имеет текстовое значение " 0.5", не равное " 1.0".

Примеры сравнения двух множеств узлов:

/values/number = /values/stringtrue

Для двух этих множеств будет выполняться равенство, поскольку оба они имеют по узлу с равными строковыми значениями — первый узел /values/numberи первый узел /values/stringравны " 0.5".

values/number != /values/stringtrue

Для этих же множеств будет выполняться неравенство, поскольку в них найдется неравная пара узлов (например, узел с текстовым значением " 1.0" в /values/numberи узел с текстовым значением " 50%" в /values/string).

Определим теперь равенство и неравенство значений простых типов. При проверке на равенство или неравенство оба операнда приводятся к общему типу и сравниваются. Приведение к общему типу производится следующим образом:

□ если хотя бы один из операндов имеет булевый тип, второй также приводится к булевому типу;

□ иначе, если хотя бы один из операндов — число, второй также приводится к численному типу;

□ иначе, если хотя бы один из операндов — строка, второй также приводится к строковому типу.

После того, как оба операнда приведены к некоторому общему типу, они проверяются на равенство или неравенства как два значения этого общего типа:

□ два булевых значения равны тогда и только тогда, когда они оба являются "истиной" или оба являются "ложью";

□ равенство численных значений понимается в обычном смысле (строгое определение равенства чисел дано в стандарте IEEE 754, но вряд ли оно представляет для нас большой интерес);

□ две строки равны тогда и только тогда, когда они представлены одинаковыми последовательностями Unicode-символов.

Два значения простых типов (то есть — булевого, численного или строкового типа) неравны тогда и только тогда, когда для них не выполняется равенство.

Примеры сравнения значений простых типов:

true() = 1true

При приведении числа 1к булевому типу получается "истина", что и подтверждается этим равенством.

true() = 100true

Результатом приведения числа 100к булевому типу также является "истина".

false() = 'false'false

При приведении непустой строки "false" к булевому типу, получается "истина". Отсюда — неверность равенства.

.5 =0.5true

.5и 0.5представляют одно и то же число, хоть и они записаны в разной форме.

.5 = '0.5'true

Это равенство также будет верным, поскольку результатом преобразования строки " 0.5" в число будет также 0.5.

1 != 'two'true

Результатом преобразования строки " two" в численный тип будет значение NaN, которое не равно 1.

При сравнении с использованием операторов " <", " <=", " >" и " >=", оба операнда всегда приводятся к численному типу и сравниваются как числа.

Примеры сравнений с использованием операторов " <", " <=", " >" и " >=":

false () > true()false

В численном виде true()соответствует 1, a false()0, то есть это сравнение равносильно сравнению 0 > 1, результатом которого является "ложь".

'0' <= false()true

Это сравнение равносильно сравнению 0 <= 0, результатом его будет "истина".

'1' >= '0'true

Это сравнение равносильно сравнению 1 >= 0, результатом его будет "истина".

Следует обратить внимание, на то, что символы " <" и " >" заменены сущностями <и >соответственно. В случае символа " <" такая замена необходима, чтобы не нарушать выражениями синтаксис XML-документа. Заменять символ " >" обязательной нужды нет, это делается исключительно из соображений единообразности.

Логические операции

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

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

Интервал:

Закладка:

Сделать


Алексей Валиков читать все книги автора по порядку

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




Технология XSLT отзывы


Отзывы читателей о книге Технология XSLT, автор: Алексей Валиков. Читайте комментарии и мнения людей о произведении.


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

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