28
Продвинутые возможности XSLT http://ProductivityBlog.com.ua

XSLT - 6

Embed Size (px)

Citation preview

Page 1: XSLT - 6

Продвинутыевозможности XSLT

http://ProductivityBlog.com.ua

Page 2: XSLT - 6

О чем пойдет речь

▪ xsl:key

▪ xsl:variable

▪ xsl:key и предикаты Xpath

▪ xsl:for-each-group

▪ xsl:number

▪ xsl:analyze-string

▪ xsl: function

Page 3: XSLT - 6

Файлы и инструменты

Файлы практических работ в файле XSLT_6.zip в папке Practice

XMLSpy, StyleVision из пакета ALTOVA MissionKit

Page 4: XSLT - 6

xsl:key

▪Для поиска данных после их сохранения

▪определение xsl:key

▪выше xsl:template – глобально для файла

▪ имя, критерий, значение

▪функция key()

▪указываем имя

Page 5: XSLT - 6

xsl:key

Page 6: XSLT - 6

Xsl:variable

▪ Определение именованного значения

▪имя

Page 7: XSLT - 6

Практика –поиск по ключу

▪ Открыть XMLSpy

▪ Cоздать файл XSLT 2.0 (Generic Transformation) и сохранить подименем key.xslt

▪ Подключить файл Julius_Caesar.xml

▪ Метод – XML to HTML

▪ Добавить тег xsl:variable

▪ Добавить тег xsl:key

Готовый файл можно найти в папке Chapter6\transformations

Page 11: XSLT - 6

xsl:key и предикаты XPath

▪ Поиск у нас был реализован через XPath-выражения, зачем же xsl:key?

▪ гибкость (присмотритесь к переменной $FRC)

▪скорость (быстрее, чем XPath)

Page 12: XSLT - 6

xsl:for-each-group

▪ Группировка данныхна основе атрибутов select и group-by

▪ current-grouping-key() – значение group-by

▪ current-group() –группа элементов

Page 13: XSLT - 6

Практика –группировка данных

▪ Создать новый XSLT 2.0-файл в XMLSpy (Generic Transformation)

▪ Подключить файл с данными – Julius_Caesar.xml

▪ Cохранить файл как ForEachGroup.xslt

▪ Изменить метод на HTML

Готовый файл можно найти в папке Chapter6\transformations

Page 15: XSLT - 6

xsl:number

▪ подсчет элементов XML-данных и вывод их порядковых номеров

▪ атрибут level – single или any

▪ Атрибут format – 1, 001, A

Page 16: XSLT - 6

Практика –нумерация данных

▪ Открыть key2.xslt

▪ Добавить во внутренний цикл

▪ Сохранить как Number.xslt

▪ Запустить трансформацию, сохранить результат как Output4.html

▪ Изменить добавленный тег

▪ Сохранить как Number2.xslt

▪ Запустить трансформацию, сохранить результат как Output5.html

Готовый файл можно найти в папке Chapter6\transformations

Page 17: XSLT - 6

Практика –усложняем задачу

▪ Открыть Number.xslt

▪ Изменить циклы таким образом

▪ Запустить трансформацию

▪ Сохранить результат как Output6.html

▪ Выполнить поиск «Friends, Romans»

Готовый файл можно найти в папке Chapter6\transformations

Page 18: XSLT - 6

xsl-analyze-string

▪ Поиск строки, соответствующей регулярному выражению и ее преобразование

▪ \w+ - хотя бы один алфавитноцифровой символ

▪ xsl-matching-substring – выполняем преобразования найденных строк

▪ xsl-non-matching-substring – действия с остальными строками

Page 19: XSLT - 6

xsl-analyze-string

Page 20: XSLT - 6

Практика –обработка строк

▪ Открыть PartsList.xslt

▪ Cохранить как String.xslt

▪ Запустить трансформацию

▪ Внутрь сортировкидобавить

▪ Cохранить изменения

▪ Сохранить результат какOutput7.html

Готовый файл можно найти в папке Chapter6\transformations

Page 21: XSLT - 6

Практика –усложняем задачу

Цель – слово “The” не должно быть с большой буквы

▪ Изменить теги анализа строк

▪ Сохранить как fix_THE.xslt

▪ Запустить трансформацию, сохранить как Output8.html

Готовый файл можно найти в папке Chapter6\transformations

Page 22: XSLT - 6

Модульность кода

▪ Модульность кода = его повторноеиспользование в других проектах

▪ускорение и удешевление разработки и поддержки

▪ xsl:function и xsl:include

▪попробуем вынести в отдельную функцию код, исправляющий слово The

Page 23: XSLT - 6

xsl:function

▪ Определение пространства имен

▪ Определение функции

▪ее тело

▪xsl:param – становится локальной переменной

▪ Вызов

▪namespace:function_name(параметр)

Page 24: XSLT - 6

Практика –создание функций

▪ Открыть fix_THE.xslt

▪ Добавить атрибут к тегу xsl:stylesheet

▪ Добавить определение функции

▪ Перенести внутрь определениявесь код из xsl:analyze-string, изменив атрибут select

▪ Внутрь сортировки добавить вызов функции

▪ Сохранить как Function.xslt

▪ Запустить трансформацию, сохранить в Output9.html

Готовый файл можно найти в папке Chapter6\transformations

Page 25: XSLT - 6

Практика –подключение файлов

▪ Создать новый XSLT 2.0-файл (Generic Transformation)

▪ Cохранить как My_Functions.xslt

▪ Добавить атрибут с пространством имен

▪ Удалить тег xsl:output

▪ Перенести в файл определение функции из Function.xslt

Готовый файл можно найти в папке Chapter6\transformations

Page 26: XSLT - 6

Практика –подключение файлов

▪ Cохранить My_Functions.xslt

▪ Перейти к Functions.xslt и вставить на месте вырезанного тега xsl:function

▪ Cохранить как include.xslt

▪ Запустить трансформацию и сохранитькак Output10.html

▪ В файл можно добавить еще функций –создать библиотеку

Готовый файл можно найти в папке Chapter6\transformations

Page 27: XSLT - 6

Подводим итоги

▪ Мы изучили некоторыепродвинутые возможности XSLT

▪ Научились создавать функции и библиотеки функций

▪ Использовали XMLSpy

Page 28: XSLT - 6

Вопросы и ответы