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


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

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

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

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

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

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

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

Описание книги "XSLT"

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



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

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

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






  <DENSITY>.943</DENSITY>

  <DISTANCE>66.8</DISTANCE>

 </PLANET>

 <PLANET number="3" total="3">

  <NAME>Earth</NAME>

  <MASS>1</MASS>

  <DAY>1</DAY>

  <RADIUS>2107</RADIUS>

  <DENSITY>1</DENSITY>

  <DISTANCE>128.4</DISTANCE>

 </PLANET>

</PLANETS>

Среди функций для работы с наборами узлов в особенности обратите внимание на функции name и local-name. С их помощью можно определить имя текущего элемента: например, если текущим элементом является <DAY>, local-name вернет DAY. Следующая таблица стилей демонстрирует, для чего это может понадобиться; в ней я использую такие теги, как <PLANETS>, <PLANET> и <DATA>, в качестве элементов буквального результата:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

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

 <xsl:output method="xml"/>

 <xsl:template match="PLANETS">

  <PLANETS>

   <xsl:for-each select="PLANET">

    <PLANET>

     <xsl:for-each select="*">

      <DATA>

       <xsl:value-of select="."/>

      </DATA>

     </xsl:for-each>

    </PLANET>

   </xsl:for-each>

  </PLANETS>

 </xsl:template>

</xsl:stylesheet>

Однако в таком случае разметка трактуется как простой текст. Вместо этого можно создать новые элементы при помощи <xsl:element>, определяя имена контекстных узлов через local-name:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

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

 <xsl:output method="xml"/>

 <xsl:template match="PLANETS">

  <xsl:element name="{local-name(.)}">

   <xsl:for-each select="PLANET">

    <xsl:element name="{local-name(.)}">

     <xsl:for-each select="*">

      <xsl:element name="DATA">

       <xsl:value-of select="."/>

      </xsl:element>

     </xsl:for-each>

    </xsl:element>

   </xsl:for-each>

  </xsl:element>

 </xsl:template>

</xsl:stylesheet>

Ряд пишущих об XSLT авторов рассматривает выражения XSLT только как выражения, возвращающие наборы узлов. Но выражения XPath возвращают также логические значения, числа и строки, которые используются в элементах <xsl:param>, <xsl:with-param>, <xsl:number>, <xsl:value-of>, <xsl:sort>, шаблонах значений атрибутов и предикатах путей расположения. В предыдущем примере для вставки в документ числа я присвоил атрибуту select элемента <xsl:value-of> выражение XPath count(//PLANET), которое возвращает не набор узлов, а число. Сейчас мы как раз перейдем к обработке чисел при помощи выражений XPath.

Числа XPath

В XPath числа хранятся в формате чисел с плавающей точкой двойной точности. В соответствии с формальным определением, числа XPath должны храниться в формате 64-разрядных чисел с плавающей точкой двойной точности IEEE 754, и все числа хранятся как числа с плавающей точкой двойной точности.

В XPath можно выполнять следующие операции над числами, как мы уже видели в главе 4 при обсуждении предикатов XPath:

• + сложение;

• - вычитание;

 * умножение;

• div деление (символ /, соответствующий делению в других языках, в XML и XPath уже занят);

• mod возвращает значение деления по модулю двух чисел (остаток после деления первого числа на второе).

Например, элемент <xsl:value-of select="15+75"/> вставит в выходной документ строку «90». В следующем примере выбираются все планеты, чей день (измеренный в днях Земли), умноженный на расстояние планеты от Солнца (измеренное в миллионах миль), больше, чем 60 000:

<xsl:template match="PLANETS">

 <HTML>

  <BODY>

   <xsl:apply-templates select="PLANET[DAY * MASS > 60000]"/>

  </BODY>

 </HTML>

</xsl:template>

XPath также поддерживает следующие функции работы с числами:

• ceiling(). Возвращает наименьшее целое, большее, чем переданное функции число;

• floor(). Возвращает наибольшее целое, меньшее, чем переданное функции число;

• round(). Округляет переданное число до ближайшего целого;

• sum(). Возвращает сумму переданных функции чисел.

Например, среднее расстояние от Солнца (в миллионах миль) планет в planets.xml можно найти таким способом:

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

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

 <xsl:output method="xml"/>

 <xsl:template match="PLANETS">

  <HTML>

   <BODY>

    The average planetary distance from the Sun is:

    <xsl:value-of select="sum(child::PLANET/child:DISTANCE) div count(child::PLANET)"/>

   </BODY>

  </HTML>

 </xsl:template>

</xsl:stylesheet>

Строки XPath

В XPath строки по умолчанию состоят из символов Unicode. Как мы уже видели в главе 4 при обсуждении выражений XPath в предикатах выбора, существует ряд функций, специально предназначенных для работы со строками (более подробно они будут изучаться в следующей главе):

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

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

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

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

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

• 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.

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

Листинг 7.1. Поиск текста в атрибутах

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

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

 <xsl:template match="/PLANETS">

  <HTML>

   <HEAD>

    <TITLE>

     The Planets Table

    </TITLE>

   </HEAD>

   <BODY>

    <H1>

     The Planets Table

    </H1>

    <TABLE BORDER="2">

     <TR>

      <TD>Name</TD>

      <TD>Mass</TD>

      <TD>Radius</TD>

      <TD>Day</TD>

      <TD>Distance</TD>

     </TR>

     <xsl:apply-templates/>

    </TABLE>

   </BODY>

  </HTML>

 </xsl:template>


 <xsl:template match="PLANET">

  <TR>

   <TD><xsl:value-of select="NAME"/></TD>

   <TD><xsl:apply-templates select="MASS/></TD>

   <TD><xsl:apply-templates select="RADIUS"/></TD>

   <TD><xsl:apply-templates select="DAY"/></TD>

   <TD><xsl:apply-templates select="DISTANCE"/></TD>

  </TR>

 </xsl:template>


 <xsl:template match="MASS">

  <xsl:value-of select="."/>

  <xsl:text> </xsl:text>

  <xsl:value-of select="@UNITS"/>

 </xsl:template>


 <xsl:template match="RADIUS">

  <xsl:value-of select="."/>

  <xsl:text> </xsl:text>

  <xsl:value-of select="@UNITS"/>

 </xsl:template>


 <xsl:template match="DAY">


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

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

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


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

Все книги автора Стивен Холзнер

Стивен Холзнер - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

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

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

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

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