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






Вас могут заинтересовать следующие руководства по XPath:

• http://www.zvon.org/xxl/XPathTutorial/General/examples.html;

• http://www.pro-solutions.com/tutorials/xpath/.

Рассмотренные нами до сих пор образцы выбора возвращали наборы узлов (node set), в которых можно было осуществить выбор или обработать набор в цикле, но XPath предоставляет более общие средства. Помимо наборов узлов, выражения XPath могут также возвращать числа, логические (true/false) значения и строки. Чтобы разобраться с XPath, необходимо разобраться с выражениями XPath. Только один вид выражения XPath (хотя и очень важный) возвращает наборы узлов, определяющие разделы документа. Как мы увидим, другие выражения XPath возвращают данные других видов.

Полный синтаксис выражений XPath описан в спецификации XPath, и я приведу его здесь для справки. Как и в случае образцов выбора, для формального определения выражений XPath W3C использует нотацию расширенных форм Бэкуса-Наура (РБНФ). (Описание этой грамматики вы можете найти по адресу www.w3.org/TR/REC-xml, раздел 6.) В следующем списке приведена нужная нам нотация РБНФ:

• ::= означает «определяется как»;

• + означает «один или больше»,

• * означает «ноль или больше»;

• | означает «или»;

• - означает «не»;

• ? означает «не обязательно»;

Также примите во внимание, что когда элемент заключен в одиночные кавычки, как 'ancestor' или '::', это значит, что элемент должен появиться в выражении буквально (как "ancestor::PLANET"), — такие элементы называются литералами, literals. Ниже приведено полное формальное определение выражения XPath (здесь оно называется Expr):

Expr ::= OrExpr

OrExpr ::= AndExpr | OrExpr 'or' AndExpr

AndExpr ::= EqualityExpr | AndExpr 'and' EqualityExpr

EqualityExpr ::= Relational Expr | EqualityExpr '=' Relational Expr

 | EqualityExpr '!=' RelationalExpr

RelationalExpr ::= AdditiveExpr | RelationalExpr '<' AdditiveExpr

 | RelationalExpr '>' AdditiveExpr | RelationalExpr '<=' AdditiveExpr

 | RelationalExpr '>=' AdditiveExpr

AdditiveExpr ::= MultiplicativeExpr | AdditiveExpr '+' MultiplicativeExpr

 | AdditiveExpr '-' MultiplicativeExpr

MultiplicativeExpr ::= UnaryExpr

 | MultiplicativeExpr

MultiplyOperator ::= UnaryExpr

| MultiplicativeExpr 'div' UnaryExpr | MultiplicativeExpr 'mod' UnaryExpr

UnaryExpr ::= UnionExpr | '-' UnaryExpr

MultiplyOperator ::= '*'

UnionExpr ::= PathExpr | UnionExpr '|' PathExpr

PathExpr ::= LocationPath | FilterExpr

 | FilterExpr '/' RelativeLocationPath | FilterExpr '//' RelativeLocationPath

LocationPath ::= RelativeLocationPath | AbsoluteLocationPath

AbsoluteLocationPath ::= '/' RelativeLocationPath? | AbbreviatedAbsoluteLocationPath

RelativeLocationPath ::= Step | RelativeLocationPath '/' Step

 | AbbreviatedRelativeLocationPath

AbbreviatedAbsoluteLocationPath ::= '//' RelativeLocationPath

AbbreviatedRelativeLocationPath ::= RelativeLocationPath '//' Step

Step ::= AxisSpecifier NodeTest Predicate* | AbbreviatedStep

AxisSpecifier ::= AxisName '::' | AbbreviatedAxisSpecifier

AxisName ::= 'ancestor' | 'ancestor-or-self' | 'attribute' | 'child' | 'descendant'

 | 'descendant-or-self' | 'following' | 'following-sibling' | 'namespace'

 | 'parent' | 'preceding' | 'preceding-sibling' | 'self'

AbbreviatedAxisSpecifier ::= '@'?

NodeTest ::= NameTest | NodeType '(' ')'

 | 'processing-instruction' '(' Literal ')'

NameTest ::= '*' | NCName '*' | QName

NodeType ::= 'comment' | 'text' | 'processing-instruction' | 'node'

Predicate ::= '[' PredicateExpr ']'

PredicateExpr ::= Expr

FilterExpr ::= PrimaryExpr | FilterExpr Predicate

PrimaryExpr ::= VariableReference | '(' Expr ')'

 | Literal | Number | FunctionCall

VariableReference ::= '$' QName

Number ::= Digits ('.' Digits?)? | Digits

Digits ::= [0-9]+

FunctionCall ::= FunctionName '(' ( Argument ( Argument )* )? ')'

FunctionName ::= QName - NodeType

Argument ::= Expr

AbbreviatedStep := '.' | '..'

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

Типы данных XPath

В XPath существует четыре типа данных, а не только тип набора узлов, который должны возвращать образцы выбора:

• наборы узлов;

• логические значения;

• числа;

• строки.

ФРАГМЕНТЫ РЕЗУЛЬТИРУЮЩЕГО ДЕРЕВА

В XSLT 1.0 к типам данных XPath добавляются фрагменты результирующего дерева. Как говорилось в главе 4, фрагменты результирующего дерева представляют собой просто фрагменты дерева, которые можно присваивать переменным XSLT. Их поддержка была удалена из рабочего проекта XSLT 1.1, поэтому, скорее всего, они не будут включены в XSLT 2.0. Фрагменты результирующего дерева можно рассматривать как типы данных при помощи <xsl:variable>, что мы и увидим в главе 9.

В следующих разделах мы по очереди рассмотрим эти типы данных.

Наборы узлов XPath

Как следует из имени, набор узлов (node set) является просто совокупностью узлов. Набор узлов может включать несколько узлов, единственный узел или быть пустым. Поскольку главная задача XPath — определять место разделов документов, постольку возвращающие наборы узлов выражения XPath являются наиболее популярными типами выражений. Например, выражение XPath child::PLANET возвращает набор узлов из всех элементов <PLANET>, дочерних для контекстного узла. Выражение child::PLANET/child::NAME возвращает набор узлов из всех элементов <NAME>, дочерних для элементов <PLANET> контекстного узла. Выражения XPath такого рода называются путями расположения, location path (W3C называет их «самой важной конструкцией» в XPath), и существенная часть этой главы будет посвящена разъяснению путей расположения.

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

• count(node-set). Эта функция возвращает количество узлов в наборе. Если опустить параметр «набор узлов», функция будет применена к контекстному узлу;

• id(string ID). Эта функция возвращает набор узлов из элемента, чей ID удовлетворяет строке, переданной функции в качестве параметра, или пустой набор узлов, если ни у какого элемента нет указанного ID. Можно указать несколько идентификаторов, разделенных символами-разделителями, — в таком случае функция вернет набор узлов из элементов с этими идентификаторами;

• last(). Возвращает номер последнего узла в наборе;

• local-name(node-set). Возвращает локальное имя первого узла в наборе. Если опустить параметр «набор узлов», функция будет применена к контекстному узлу;

• name(node-set). Возвращает полностью определенное имя первого узла в наборе. Если опустить параметр «набор узлов», функция будет применена к контекстному узлу;

• namespace-uri(node-set). Возвращает URI пространства имен первого узла в наборе. Если опустить параметр «набор узлов», функция будет применена к контекстному узлу;

• position(). Возвращает позицию контекстного узла в контекстном наборе узлов (начиная с 1).

В следующем примере (из главы 6) для подсчета количества узлов в наборе применяется функция count. В этом случае набор узлов состоит из всех элементов <PLANET> в planets.xml, и я получил его при помощи пути расположения «\\PLANET» (который как путь расположения также является выражением XPath):

<xsl:stylesheet

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

 <xsl:output method="xml" indent="yes"/>

 <xsl:template match="*">

  <xsl:copy>

   <xsl:apply-templates/>

  </xsl:copy>

 </xsl:template>


 <xsl:template match="PLANET">

  <xsl:copy use-attribute-sets="numbering">

   <xsl:apply-templates/>

  </xsl:copy>

 </xsl:template>


 <xsl:attribute-set name="numbering">

  <xsl:attribute name="number"><xsl:number/></xsl:attribute>

  <xsl:attribute name="total">

   <xsl:value-of select="count(//PLANET)"/>

  </xsl:attribute>

 </xsl:attribute-set>

</xsl:stylesheet>

Ниже показан результат; заметьте, что у каждого элемента <PLANET> есть оба атрибута, number и total, и атрибут total содержит общее число элементов <PLANET> в документе:

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

<PLANETS>

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

  <NAME>Mercury</NAME>

  <MASS>.0553</MASS>

  <DAY>58.65</DAY>

  <RADIUS>1516</RADIUS>

  <DENSITY>.983</DENSITY>

  <DISTANCE>43.4</DISTANCE>

 </PLANET>

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

  <NAME>Venus</NAME>

  <MASS>.815</MASS>

  <DAY>116.75</DAY>

  <RADIUS>3716</RADIUS>

  <DENSITY>.943</DENSITY>

  <DISTANCE>66.8</DISTANCE>

 </PLANET>

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


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

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

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


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

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

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

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

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

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

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