» » » » Стивен Холзнер - 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 и использовать его на практике






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

  </TR>

 </xsl:template>


 <xsl:template match="PLANET[not(@COLOR) or not(@POPULATED)]">

 </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">

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

  <xsl:text> </xsl:text>

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

 </xsl:template>

</xsl:stylesheet>

А вот результат:

<HTML>

 <HEAD>

  <TITLE>

   Colorful, Populated Planets

  </TITLE>

 </HEAD>

 <BODY>

  <H1>

   Colorful, Populated Planets

  </H1>

  <TABLE BORDER="2">

   <TR>

    <TD>Name</TD>

    <TD>Mass</TD>

    <TD>Radius</TD>

    <TD>Day</TD>

   </TR>

   <TR>

    <TD>Earth</TD>

    <TD>1 (Earth = 1)</TD>

    <TD>2107 miles</TD>

    <TD>1 days</TD>

   </TR>

  </TABLE>

 </BODY>

</HTML>

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

Рис. 4.3. Применение предикатов XPath для проверки атрибутов


В следующем примере я копирую planets.xml в новый XML-документ и изменяю текст в элементе <NAME> Венеры на "The Planet of Love" (планета любви). Для этого я сначала копирую в результирующий документ все узлы и атрибуты:

<?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="@*|node()">

  <xsl:copy>

   <xsl:apply-templates select="@*|node()"/>

  </xsl:copy>

 </xsl:template>

 .

 .

 .

Теперь я добавлю новое правило, выбирающее элементы <NAME> с текстом "Venus" (Венера) по образцу "NAME[text()='Venus']". Хотя элементы <NAME> удовлетворяют обоим правилам этой таблицы стилей, правило с образцом "NAME[text()='Venus']" осуществляет более узкий выбор, поэтому для элемента <NAME> Венеры процессор XSLT применит его:

<?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="@*|node()">

  <xsl:copy>

   <xsl:apply-templates select="@*|node()"/>

  </xsl:copy>

 </xsl:template>


 <xsl:template match="NAME[text() = 'Venus']">

  <NAME>

   The Planet of Love

  </NAME>

 </xsl:template>

</xsl:stylesheet>

И вот результат:

<?xml version="1.0" encoding="utf-8"?>

<?xml-stylesheet type="text/xml" href="planets.xsl"?>

<PLANETS>

 <PLANET>

  <NAME>Mercury</NAME>

  <MASS UNITS="(Earth = 1)">.0553</MASS>

  <DAY UNITS="days">58.65</DAY>

  <RADIUS UNITS="miles">1516</RADIUS>

  <DENSITY UNITS="(Earth = 1)">.983</DENSITY>

  <DISTANCE UNITS="million miles">43.4</DISTANCE><!--B перигелии-->

 </PLANET>

 <PLANET>

  <NAME>

   The Planet of Love

  </NAME>

  <MASS UNITS="(Earth = 1)">.815</MASS>

  <DAY UNITS="days">116.75</DAY>

  <RADIUS UNITS="miles">3716</RADIUS>

  <DENSITY UNITS="(Earth = 1)">.943</DENSITY>

  <DISTANCE UNITS="million miles">66.8</DISTANCE><!--B перигелии-->

 </PLANET>

 <PLANET>

  <NAME>Earth</NAME>

  <MASS UNITS="(Earth = 1)">1</MASS>

  <DAY UNITS="days">1</DAY>

  <RADIUS UNITS="miles">2107</RADIUS>

  <DENSITY UNITS="(Earth = 1)">1</DENSITY>

  <DISTANCE UNITS="million miles">128.4</DISTANCE><!--B перигелии-->

 </PLANET>

</PLANETS>

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

<?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="@*|node()">

  <xsl:copy>

   <xsl:apply-templates select="@*|node()"/>

  </xsl:copy>

 </xsl:template>

 <xsl:template match="NAME[. = 'Venus']">

  <NAME>

   The Planet of Love

  </NAME>

 </xsl:template>

</xsl:stylesheet>

Имеет смысл привести как можно больше примеров — примеров XPath или образцов выбора никогда не бывает слишком много. Ниже приведен содержательный ряд примеров образцов выбора:

• PLANET выбирает дочерние элементы <PLANET> контекстного узла;

• /PLANETS выбирает корневой элемент <PLANETS> документа;

• * выбирает все дочерние элементы контекстного узла;

• PLANET[3] выбирает третьего ребенка <PLANET> контекстного узла;

• PLANET[last()] выбирает последнего ребенка <PLANET> контекстного узла;

• PLANET[NAME] выбирает детей <PLANET> контекстного узла, имеющих детей <NAME>;

• PLANET[DISTANCE]/NAME выбирает все элементы <NAME> элементов <PLANET>, содержащих по крайней мере один элемент <DISTANCE>;

• PLANET[DISTANCE]/PLANET[DAY] выбирает все элементы <PLANET> элементов <PLANET>, в которых элемент <PLANET> содержит по крайней мере один элемент <DISTANCE>, и элемент <PLANET> содержит по крайней мере один элемент <DAY>;

• РLANETS[РLАNET/DAY] выбирает все элементы <PLANETS>, содержащие элементы <PLANET> как минимум с одним элементом <DAY>;

• PLANET[DISTANCE][NAME] выбирает все элементы <PLANET>, имеющие элементы <DISTANCE> и <NAME>;

• PLANETS/PLANET[last()] выбирает последний элемент <PLANET> в каждом элементе <PLANETS>;

• */PLANET выбирает всех внуков <PLANET> контекстного узла;

• /PLANETS/PLANET[3]/NAME[2] выбирает второй элемент <NAME> третьего элемента <PLANET> элемента <PLANETS>;

• //PLANET выбирает всех потомков <PLANET> корня документа;

• PLANETS//PLANЕТ выбирает потомков элемента <PLANET> детей элемента <PLANETS> контекстного узла;

• //PLANET/NAME выбирает все элементы <NAME>, дочерние по отношению к родителю <PLANET>;

• РLАNETS//PLАNET/DISTАNСЕ//РЕRIНЕLION выбирает элементы <PERIHELION> везде внутри элемента <DISTANCE> элемента <PLANET>, везде внутри элемента <PLANETS>;

• @UNITS выбирает атрибут UNITS контекстного узла;

• @* выбирает все атрибуты контекстного узла;

• *[@UNITS] выбирает все элементы с атрибутом UNITS;

• DENSITY/@UNITS выбирает атрибут UNITS в элементах <DENSITY>;

• PLANET[not(@COLOR) or not(@SIZE)] выбирает элементы <PLANET>, не имеющие обоих атрибутов COLOR и SIZE;

• PLANETS[@STAR="Sun"]//DENSITY выбирает любой элемент <DENSITY> с элементом-предком <PLANETS>, имеющим атрибут STAR со значением "Sun";

• PLANET[NAME="Venus"] выбирает детей <PLANET> контекстного узла, имеющих детей <NAME> с текстом "Venus";

• PLANET[NAME[1]="Venus"] выбирает все элементы <PLANET>, у которых в первом элементе <NAME> содержится текст в "Venus";

• DAY[@UNITS!="million miles"] выбирает все элементы <PLANET>, атрибут UNITS которых не равен "million miles";

• PLANET[@UNITS="days"] выбирает всех детей <PLANET> контекстного узла, имеющих атрибут UNITS со значением "days";

• PLANET[6][@UNITS="days"] выбирает шестого ребенка <PLANET> контекстного узла, только если у этого ребенка есть атрибут UNITS со значением "days", — что также можно записать как PLANET[@UNITS="days"][6];

• PLANET[@COLOR and @UNITS] выбирает всех детей <PLANET> контекстного узла, имеющих оба атрибута COLOR и UNITS;


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

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

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


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

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

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

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

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

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

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