
- •XSLT
- •XPath
- •Шаг доступа состоит из трех частей: необязательной оси, проверки узла и необязательного предиката.
- •Оси выборки XPath
- •Оси — это база языка XPath.
- •Дочерняя ось и ось потомков
- •Оси братьев
- •Родительская ось и ось
- •Предикат
- •Операторы и специальные символы
- •Функции множеств узлов
- •Функция: number sum(node-set) возвращает сумму результатов преобразований строковых значений всех узлов в аргументном
- •Функция: string string(object?) преобразует объект в строку
- •Проверки типов узлов
- •string-length
- •Выбираются все атрибуты @id //@id
- •В общем случае в преобразовании участвуют три документа:
- •Процесс обработки делится на три стадии.
- •XSLT имеет некоторые ограничения:
- •xsl:stylesheet
- •xsl:template
- •Атрибуты элемента xsl:template
- •Корневое правило
- •xsl:value-of
- •Когда для каждого узла из некоторого набора требуется выполнить однотипную обработку, то применяется
- •В предыдущих примерах таблице полностью с тегов в XML-файле. изменять. Добавим в тег
- •xsl:sort
- •Условия
- •Элемент XSL:IF - фильтр
- •Переменные в XSLT
- •xsl:apply-templates
- •xsl:number
- •Атрибут format позволяет определить форматную строку, используемую как шаблон при выводе номера. Например,
- •from- указывающий, с какой точки начинается отсчет.
- •xsl:choose
- •xsl:attribute
- •Параметры в XSLT

Выбираются все атрибуты @id //@id
<AAA>
<BBB id = "b1"/>
<BBB id = "b2"/>
<BBB name = "bbb"/>
<BBB/>
</AAA>
Выбираются элементы BBB, имеющие атрибут id //BBB[@id]
Выбираются элементы BBB, имеющие хоть какой-нибудь атрибут
//BBB[@*]
Выбираются элементы BBB, не имеющие ни одного атрибута
//BBB[not(@*)]
Выбираются элементы BBB, имеющие атрибут id со значением b1
//BBB[@id='b1']

<AAA>
<CCC>
<BBB/
>
<BBB/
>
<BBB/
>
</CCC>
<DDD>
<BBB/
>
<BBB/
>
</DDD>
<EEE>
<CCC/
>
<DDD
/>
</EEE>
Выбираются элементы, имеющие два дочерних элемента BBB
//*[count(BBB)=2]
Выбираются все элементы, имя которых начинается с B
//*[starts-with(name(),'B')]
Выбираются все элементы, имя которых содержит C
//*[contains(name(),'C')]

XSL
Принцип обработки XML- документов стилевыми таблицами заключается в следующем: при разборе XSL-документа программа-анализатор обрабатывает инструкции этого языка и каждому элементу, найденному в XML- дереве ставит в соответствие набор тэгов, определяющих форматирование этого элемента.
Инструкции XSL определяют точное месторасположение элемента XML в дереве, поэтому существует возможность применять различные стили оформления к одинаковым элементам, в зависимости от контекста их использования.

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


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

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

xsl:stylesheet
Первая строка файла содержит тег элемента xsl:stylesheet.
Атрибуты элемента — номер версии и ссылка на пространство имен. Эти атрибуты элемента xsl:stylesheet являются обязательными.

<?xml version="1.0" encoding="WINDOWS-1251"?> <?xml-stylesheet type='text/xsl' href='yourxsl.xsl'?> <shop>
<product_type caption="Фрукты">
<product ammount="100">Апельсины</product> <product ammount="300">Мандарины</product> <product ammount="500">Яблоки</product>
</product_type>
<product_type caption="Овощи">
<product ammount="200">Морковь</product> <product ammount="400">Картофель</product> <product ammount="600">Огурцы</product>
</product_type> </shop>

xsl:template
XSL- документ представляет собой совокупность правил построения, каждое из которых выделено в отдельный блок, ограниченный тэгами <xsl:template> и
</xsl:template>.
Правила определяют шаблоны, по которым каждому элементу XML ставится в соответствие последовательность HTML-тэгов, т.е. внутри них содержатся инструкции, определяющие элементы XML-документа и тэги форматирования, применяемые к ним.
Элементы XML, к которым будет применяться форматирование, обозначаются в XSL атрибутом match. Для указания элемента с конкретным названием (название элемента определяется тэгами, его обозначающими), т.е. определения класса элемента, можно использовать атрибут
match="<имя_элемента>"