Слайд 2
XSL
XSL (eXtensible Stylesheet Language) — семейство рекомендаций W3C,
описывающее языки преобразования и отображения XML-документов.
XSLT — язык преобразований
XML-документов.
XPath — язык запросов к элементам XML-документа
Ввод и обработка цифровой информации
Слайд 3
XPath
XPath — определяет синтаксис выражений, позволяющих выделить из
XML-документа, некоторый набор узлов.
Слайд 4
Синтаксис XPath-выражения
Выражение состоит из некоторого множества шагов, разделённых
символом / .
Каждый шаг имеет вид:
Ось::Проверка узлов[предикат]
Слайд 5
Оси XPath
ancestor:: — Возвращает множество предков.
ancestor-or-self:: — Возвращает
множество предков и текущий элемент.
attribute:: — Возвращает множество атрибутов
текущего элемента. Это обращение можно заменить на «@»
child:: — Возвращает множество потомков на один уровень ниже. Это название сокращается полностью, то есть его можно вовсе опускать.
descendant:: — Возвращает полное множество потомков (то есть, как ближайших потомков, так и всех их потомков).
descendant-or-self:: — Возвращает полное множество потомков и текущий элемент. Выражение «/descendant-or-self::node()/» можно сокращать до «//».
Слайд 6
Оси XPath
following:: — Возвращает необработанное множество, ниже текущего
элемента.
following-sibling:: — Возвращает множество элементов на том же уровне,
следующих за текущим.
namespace:: — Возвращает множество, имеющее пространство имён (то есть присутствует атрибут xmlns).
parent:: — Возвращает предка на один уровень назад. Это обращение можно заменить на «..»
preceding:: — Возвращает множество обработанных элементов исключая множество предков.
preceding-sibling:: — Возвращает множество элементов на том же уровне, предшествующих текущему.
self:: — Возвращает текущий элемент. Это обращение можно заменить на «.»
Слайд 7
Дополнительные символы
* — обозначает любое имя или набор
символов по указанной оси, например: * — любой дочерний
узел; @* — любой атрибут.
$name — обращение к переменной, где name — имя переменной или параметра.
{} — если применяется внутри тега другого языка (например HTML), то XSLT процессор рассматривает содержимое фигурных скобок как XPath.
| — объединяет результат. То есть, можно написать несколько путей разбора через знак | и в результат такого выражения войдёт всё, что будет найдено любым из этих путей.
Слайд 8
Системны функции XPath
node-set node()
Возвращает все узлы.
string text()
Возвращает
набор текстовых узлов.
node-set current()
Возвращает текущий элемент.
number position()
Возвращает позицию элемента.
number
last()
Возвращает номер последнего элемента.
Слайд 9
number count(node-set)
Возвращает количество элементов в node-set.
string name(node-set)
Возвращает полное
имя первого тега в множестве.
string generate-id(node-set)
Возвращает строку, являющуюся уникальным
идентификатором.
node-set id(object)
Находит элемент с уникальным идентификатором
Слайд 10
Строковые функции
string string(object?)
Возвращает текстовое содержимое элемента.
string concat(string, string,
string*)
Объединяет две или более строк
number string-length(string)
Возвращает длину строки.
boolean contains(string,
string)
Возвращает истину, если первая строка содержит вторую.
string substring(string, number, number?)
Возвращает строку вырезанную из строки с указанного номера, второй номер — количество символов.
string normalize-space(string?)
Убирает лишние и повторные пробелы, а также управляющие символы, заменяя их пробелами.
Слайд 11
Числовые функции
+ — сложение
− — вычитание
* — умножение
div
— обычное деление (не деление нацело!)
mod — остаток от
деления
number number(object?)
Переводит объект в число.
number sum(node-set)
Вернёт сумму множества, каждый тег множества будет преобразован в строку и из него получено число.
number round(number)
Округляет число.
<потомок имя=''Ваня''/>
<потомок/>
предок>
корень>
Слайд 13
Примеры XPath
//предок — вернёт обоих предков
//предок/потомок — вернёт
3-х потомков
//потомок — вернёт 4(!) потомков
//потомок/потомок — вернёт внутреннего
потомка
//потомок[@имя=''Ваня''] — вернёт 2-х потомков
//потомок[2] — вернёт потомка Ваня
//потомок[1] — вернёт двух потомков
Слайд 14
XSLT
eXtensible Stylesheet Language Transform
Xml-подобный декларативный язык позволяющий преобразовать
Xml-файл в другой текстовый формат.
Xml-файл(ы)
XSL-файл(ы)
XSLT-процессор
Выходной файл
Слайд 15
Ссылка на XSL в XML
В xml-файл после заголовка
помещается строка:
href — путь к xsl-файлу
Если браузер
имеет встроенный xslt-парсер — то браузер автоматически отобразит xml, как html
Слайд 17
Шаблоны
Элемент xsl:template задаёт шаблон по которому будет обрабатываться
определённая часть документа.
Проводя аналогию с другими языками программирования можно
сказать, что это процедура.
Есть два способа вызвать обработку по шаблону.
1) вызывает шаблоны соответствующие элементам выбранным с помощью выражения
2) вызывает шаблон по имени
Слайд 18
Создание шаблона
qname >
pattern - XPath выражение для которого будет применяться
шаблон.
qname — имя шаблона по которому его можно вызывать.
Слайд 19
Передача параметров
Параметры в шаблоне задаются с помощью элемента
Для передачи параметров в шаблон используется элемент
name="ParamName">
Слайд 20
Пример шаблона для корня
шаблоны -->