(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 у меня на еще одна статья, написаная гораздо позже.

Comments ( )
<00>  <01>  <02>  <03>  <04>  <05>  <06>  <07>  <08>  <09>  <10>  <11>  <12>  <13>  <14>  <15>  <16>  <17>  <18>  <19>  <20>  <21>  <22>  <23
Link to this page: //www.vb-net.com/convert/xslt/index.htm
<SITEMAP>  <MVC>  <ASP>  <NET>  <DATA>  <KIOSK>  <FLEX>  <SQL>  <NOTES>  <LINUX>  <MONO>  <FREEWARE>  <DOCS>  <ENG>  <CHAT ME>  <ABOUT ME>  < THANKS ME>