ASP NET, NET Framework, MONO, SQL, Visual Studio | Professional Programs | Программист Еремин В.В.
(Notes) Notes (2002 год)

XSLT-преобразования.

Любой человек, который имеет претензии на программирование, просто обязан освоить XSLT. Это особый вид программирования - программирование, управляемое шаблонами. Так же, как изменяется мышление при переходе от процедурного к обьектному программированию, или от обьектного к рекурсиям, управлямым условиями (как в Lisp), так же измениться ваше мышление, когда вы осознаете, что в XSLT-преобразовании все строки программы выполняются одновременно.

Перед тем, как непосредственно начать рассматривать XSLT-трансформации необходимо понять как передвигаться по дереву XML-документа.

Передвижение по дереву XML-документа похоже по передвижению по любой иерархической структуре - файловой системе или реестру, но только щелчки мышкой оконный интерфейс преобразует в конкретные команды навигации по документу, которые в сущности являются отдельным языком программирования - Xpath. В XSLT-транформации никакой мышки нет, передвигаться по документу надо непосредственно командами в программе, поэтому сначала попробуем конкретно и детально рассмотреть как именно командами можно передвигаться по дереву XML-документа (да и вообще по любой иерархической структуре - этот же Xpath используется и в запросах к SQL-серверу и во многих других областях).


Предположим мы имеем некоторую строку, разбитую тегами по правилам XML-документа (а в браузере IE этот XML-документ будет отображаться так):


С помощью специального инструмента Visual_XSLT, встраиваемого в .NET студию, представим эту строку в более удобном виде в виде дерева XML-документа с дочерними узлами и атрибутами узлов. В момент, изображенный на рисунке, текущим узлов дерева является - /catalog[1]/provider[1]/item[1]. Здесь детально рассмотрен язык передвижения по этому дереву - Xpath и его специальное подмножество - паттерны.


Если вы уже разобрались разобравшись с переходами по дереву XML-документов, с патернами для отбора узлов документа, то после этого можно начинать разбираться непосрественно с XSLT-транформациями.

XSLT-трансформации - это специальный язык для преобразования XML-документов. Определение этого языка (как и самого XML) создано консорциумом W3.ORG - ознакомиться с ним можно здесь. Вообще говоря, я скачивал к себе зеркало сайта W3.ORG - оно оказалось очень большим - около 10 тысяч папок. И самая большая папка посвящена именно XSLT-трансформациям - корневая папка TR сайта W3.ORG содержит 1220 подпапок с документами. Также этот вопрос детально рассмотрен в MSDN. Короткий справочник по этому языку находится здесь.


Инструментов для работы с XML и XSLT существует множество, но Visual_XSLT лично мне нравится тем, что подсвечивает синтаксис, дает все контекстные подсказки, имеет очень хороший Xpath-навигатор с подсказкой, сразу строит схему документа, мапирует один XML-документ на другой - при этом все отлично встроено в .NET студию.


И напоследок рассмотрим один конкретный практический пример. Для моего сайта мне нужна была вот такая сводная страничка стандартов. В то же время у меня был вот такой XML-файл от IETF:


Быстренько в Notepade я набираю вот такую трансформацию:


И далее прогоняю XSL-транформацию майкрософтовской утилиткой MSXSL - результат преобразования перед вами:



На тему XSLT у меня на еще одна статья, написаная гораздо позже.

Комментарии к этой страничке ( )
ссылка на эту страничку: http://www.vb-net.ru/convert/xslt/index.htm
<Назад>  <Назад>  <Назад>  <Назад>  <Назад>  <Назад>  <Назад>  <Назад>  <Назад>  <Назад>  <На главную>  <В раздел ASP>  <В раздел NET>  <В раздел SQL>  <В раздел Разное>  <Написать автору>  < Поблагодарить>