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


Авторские права

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

Здесь можно скачать бесплатно "Алексей Валиков - Технология XSLT" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование, издательство БХВ-Петербург, год 2002. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Алексей Валиков - Технология XSLT
Рейтинг:
Название:
Технология XSLT
Издательство:
БХВ-Петербург
Год:
2002
ISBN:
нет данных
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Технология XSLT"

Описание и краткое содержание "Технология XSLT" читать бесплатно онлайн.



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

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






<xsl:template match="answer">

 The answer was &quot;<xsl:value-of select="text()"/>&quot;.

</xsl:template>

Листинг 7.13. Созданный текст

The answer was "No!".

Текстовые узлы могут также быть созданы элементами xsl:text и xsl:value-of. Элемент xsl:text используется для создания текстовых узлов, содержащих пробельные и специальные символы, в то время как элемент xsl:value-of выводит в выходящее дерево строковый результат вычисления выражений.

Элемент xsl:text

Синтаксис данного элемента представлен ниже:

<xsl:text

 disable-output-escaping="yes" | "no">

 <!-- Содержимое: символьные данные -->

</xsl:text>

Элемент xsl:text служит для того, чтобы создавать в выходящем документе текстовые узлы. При этом xsl:text имеет следующие особенности.

□ Преобразования будут сохранять пробельные символы, находящиеся в элементе xsl:text. То есть, для того чтобы вывести в выходящий документ пробельный символ, например такой, как символ перевода строки, достаточно написать

<xsl:text>&#10;</xsl:text>

□ Элемент xsl:text имеет атрибут disable-output-escaping, который позволяет избежать замены в выходящем документе специальных символов на символьные или встроенные сущности. Например, для того, чтобы вывести символ "<" можно указать в преобразовании

<xsl:text disable-output-escaping="yes">&lt;</xsl:text>

В остальных случаях символьные данные, включенные в элемент xsl:text, ведут себя так же, как и вне xsl:text.

Элемент xsl:value-of

Этот элемент является одним из наиболее часто используемых в XSLT. Он служит для вычисления значений выражений.

Синтаксическая конструкция элемента следующая:

<xsl:value-of

 select="выражение"

 disable-output-escaping="yes" | "no"/>

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

Элемент xsl:value-of очень похож на элемент xsl:copy-of, только в отличие от последнего он сначала преобразовывает вычисленное выражение к строковому виду, а уж затем выводит его в выходящий документ. Иными словами, выражение

<xsl:value-of select="выражение"/>

равносильно

<xsl:copy-of select="string{выражение}"/>

Соответственно, преобразование различных типов данных в строковый тип производится точно так же, как если бы мы использовали для этой цели функцию string.

Пример

Для составления таблицы умножения можно воспользоваться следующим преобразованием.

Листинг 7.14. Входящий документ

<numbers>

 <number>1</number>

 <number>2</number>

 <number>3</number>

 <number>4</number>

 <number>5</number>

 <number>6</number>

 <number>7</number>

 <number>8</number>

 <number>9</number>

</numbers>

Листинг 7.15. Преобразование, создающее таблицу умножения

<xsl:stylesheet

 version="1.0"

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


 <xsl:output method="text"/>


 <xsl:template match="numbers">

  <xsl:variable name="numbers" select="number"/>

  <xsl:for-each select="$numbers">

   <xsl:variable name="a" select="."/>

   <xsl:for-each select="$numbers">

    <xsl:variable name="b" select="."/>

    <!-- Если результат произведения меньше 10, добавляем пробел -->

    <xsl:if test="$a * $b &lt; 10">

     <xsl:text> </xsl:text>

    </xsl:if>

    <xsl:value-of select="$a*$b"/>

    <xsl:text> </xsl:text>

   </xsl:for-each>

   <xsl:text>&#xA;</xsl:text>

  </xsl:for-each>

 </xsl:template>


</xsl:stylesheet>

Листинг 7.16. Выходящий документ

1  2  3  4  5  6  7  8  9

2  4  6  8 10 12 14 16 18

3  6  9 12 15 18 21 24 27

4  8 12 16 20 24 28 32 36

5 10 15 20 25 30 35 40 45

6 12 18 24 30 36 42 48 54

7 14 21 28 35 42 49 56 63

8 16 24 32 40 48 56 64 72

9 18 27 36 45 54 63 72 81

В данном случае элемент xsl:value-of используется для вычисления произведения переменных a и b. Численный результат преобразуется в строку и выводится в выходящий документ в виде текста.

Равно, как и xsl:text, элемент xsl:value-of может иметь атрибут disable-output-escaping, полезный для вывода специальных символов, которые в противном случае были бы заменены сущностями.

Пример

Результатом выполнения элемента

<xsl:value-of select="concat('Divide ', '&amp;', ' impera')"/>

будет текстовый узел

Divide &amp; impera

Чтобы придать амперсанту более привычный вид, мы можем использовать атрибут disable-output-escaping:

<xsl:value-of

select="concat('Divide ', '&amp;', ' impera')"

disable-output-escaping="yes"/>

Результатом выполнения этого шаблона уже будет текст:

Divide & impera

Создание узлов комментариев и инструкций по обработке

Элемент xsl:comment

Этот элемент задается конструкцией вида:

<xsl:comment>

<!-- Содержимое: шаблон -->

</xsl:comment>

Элемент xsl:comment создает в результирующем дереве узел комментария. Текстом комментария становится результат выполнения шаблона, который содержится в элементе xsl:comment.

Точно так же как и в случае с xsl:processing-instruction, результат выполнения шаблона должен содержать только текстовые узлы. Узлы других типов будут либо проигнорированы, либо вызовут ошибку.

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

Пример

Элемент:

<xsl:comment>&#xA; | Please remove this later&#xA; +</xsl:comment>

создаст комментарий:

<!--

 | Please remove this later

 +-->

Элемент xsl:processing-instruction

Синтаксис элемента представлен ниже:

<xsl:processing-instruction

 name="{имя}">

 <!-- Содержимое: шаблон -->

</xsl:processing-instruction>

Элемент xsl:processing-instruction создает в результирующем дереве узел инструкции по обработке. Обязательный атрибут name определяет имя целевого приложения, которому будет адресована инструкция по обработке. В этом атрибуте может быть указан шаблон значения атрибута.

Пример

Элемент:

<xsl:processing-instruction name="servlet">

 <xsl:text>links="follow" session-timeout="7200000"</xsl:text>

</xsl:processing-instruction>

создаст в выходящем документе инструкцию по обработке вида:

<?servlet links="follow" session-timeout="7200000"?>

Содержимым создаваемой инструкции по обработке является результат выполнения шаблона, содержащегося внутри элемента xsl:processing- instruction. Этот результат должен содержать только текстовые узлы, в противном случае процессор может либо выдать ошибку, либо проигнорировать нетекстовые узлы вместе с их содержимым.

Инструкция по обработке не может содержать последовательности символов "?>", поскольку это было бы некорректно с точки зрения синтаксиса XML.

В случае, если результат выполнения шаблона содержит такую комбинацию, процессор может либо выдать ошибку, либо разделить символы "?" и ">" пробелом:"? >".

Имя инструкции по обработке, должно быть корректным XML-именем (но не равным при этом "xml" в любом регистре символов). Например, следующее определение будет совершенно корректным:

<xsl:processing-instruction name="_">

 <xsl:text>logout _</xsl:text>

</xsl:processing-instruction>

В результате получится следующая инструкция: <?_ logout _?>

Для того чтобы создать в выходящем XML-документе инструкцию xml-stylesheet, которая используется для связывания документов со стилями и преобразованиями, можно воспользоваться следующим определением:


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Технология XSLT"

Книги похожие на "Технология XSLT" читать онлайн или скачать бесплатно полные версии.


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

Все книги автора Алексей Валиков

Алексей Валиков - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Алексей Валиков - Технология XSLT"

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

А что Вы думаете о книге? Оставьте Ваш отзыв.