Вредоносное ПО (malware) - это назойливые или опасные программы,...
![Лучшие утилиты для удаления вирусов и вредоносных программ](https://i2.wp.com/webhelper.info/images/danger.jpg)
Данный раздел не претендует на роль документации по языку, а лишь кратко, по шагам объясняет, как создать свой XSLT-шаблон.
Описанная ниже схема успешно мною используется уже более 3 лет. По началу я к XSLT относился с большой опаской (особенно, когда разбирал чужие исходники), однако однажды поняв, что к чему, уже не представляю, как без него можно работать.
К XHTML-макету никаких ограничений нет. Есть лишь определенные рекомендации по верстке, которые позволят значительно сэкономить время на формирование шаблона.
В качестве парсера (сборщика) конечного документа можно использовать браузер. Нужно лишь указать в XML-документы
путь к файлу шаблону:
Хотя, как показала практика, этот механизм довольно глючный (мне пришлось пользовать IE ). Лучше воспользоваться средствами XML-парсинга языка, на котором написана CMS-система. Я использую Parser (на нем, вообщем-то, у меня вся система и работает).
Я использую следующую схему:
/>
Начало
/
Новости
news
Обозначенный выше пример схемы не претендует на свою оптимальность. В силу тех или иных причин, мне он удобен. Но, обо всем по порядку.
- заголовок XML-файла . Должен идти строго с начала файла. В нем прописана версия используемого XML-языка и кодировка документа. Я как правило работаю в windows-1251 (пока так удобнее), но, по идее UTF-8 лучше.
Корневой элемент документа (можно придумать свое имя). Атрибуты:
CMS при сборке страницы просто выводит в все модули, которые задействованы на странице в виде:
Атрибуты:
Container
- блок-назначение (в каком блоке шаблона выводиться).
Sorting
- порядок вывода в блоке.
Type
- тип:
Method
- обработчик данных.
Html
- текстовый модуль.
Title
- название модуля.
DTD
я практически не использую (лишь в самом общем виде):
]>
Его можно вставить прямо в XML-документ . Сразу после .
Рассмотрим по шагам процесс создания шаблона.
Проверив валидность XHML-страницы своего шаблона, для облегчения собственной работы, обозначьте в нем положение всех динамических блоков:
Всякие новости
Где:
Шаблоны можно условно разделить на три вида:
В простейшем варианте можно создать каталог xsl и там все складировать.
Где:
Копируем весь XHTML-код внутрь блока
Этот шаблон будет автоматически применяться ко всему XML-документу . В нашем случае, XSL-преобразование заменит весь XML-код на XHTML-код вашего шаблона.
Далее, необходимо в директории XSL
создать файл template.xsl
(где, template
- название вашего шаблона), в котором размещаем следующий код:
Где:
Директива импорта внешнего XSL-файла (обрабатываеться XSL-процессором
) из указанного файла. Путь к файлу указываем относительный.
Следующий шаг - создание шаблона для меню.
Меню навигации сайта строиться на основе его структуры, представленной в XML-документе в следующем виде:
Начало
/
Новости
news
Текущий раздел определяется по двум параметрам:
Где:
select="navigation/sections"
- относительный (относительно текущего) путь-адрес элемента. При этом, будут обработаны все элементы navigation/sections
.
mode="global_menu" - используем шаблон с режимом global_menu . Это нам нужно на тот случай, если нужно будет выводить еще и сервисное меню, отдельно, или "хлебные крошки", или что-еще другое на основе одной и той же ветки навигации.
Где:
Где:
Мы вынесли обработку элементов item
(пунктов меню) в отдельный шаблон. При этом, в нем мы добавили еще и вызов другого шаблона:
Этот шаблон будет формировать нормальные uri-ссылки для элементов нашего меню. О нем немного позже.
Здесь мы сталкиваемся с новой конструкцией:
…которая, собственно, и задает условную обработку XML-элементов
. В качестве параметра мы задаем условие:
В нашем случае это условие равенства атрибутов ID у корневого элемента (document ) и текущего элемента (item ), которое и определяет, является ли элемент текущим.
Внутри блока
Здесь мы сталкиваемся с инструкцией xsl:attribute . Она позволяет создавать атрибуты для элементов внутри которого она вызывается. В нашем случае мы вызываем ее из элемента a , соответственно, она создаст для него атрибут href , т.е. адрес.
Инструкция
XSLT-преобразования
XSLT обладает большими возможностями для оперирования данными в документах XML. Например, при помощи таблицы стилей (stylesheet) XSLT я мог бы отформатировать данные из planets.xml в таблицу HTML. Таблицы стилей содержат правила, установленные для преобразования XML-документа, и большая часть книги посвящена созданию таблиц стилей и объяснению того, как они работают. Вот как выглядит таблица стилей XSLT planets.xsl (листинг 1.2), преобразующая данные из planets.xml в таблицу HTML (мы проанализируем ее в главе 2).
Листинг 1.2. planets.xsl
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> The Planets Table The Planets Table Как видите, эта таблица стилей XSLT выглядит как XML-документ - и для этого есть основания, потому что она им и является. Все таблицы стилей XSLT являются также и документами XML, а раз так, то они должны быть хорошо форматированными документами XML С этими двумя документами - planets.xml (листингом 1.1) и связанной с ним таблицей стилей, planets.xsl (листинг 1.2) - мы будем работать на протяжении всей книги, рассматривая различные возможные преобразования XSLT. Как вы свяжете эту таблицу стилей с XML-документом planets.xml ? Как мы увидим в следующей главе, одним из способов это сделать является инструкция обработки XML , использующая два атрибута. Первый атрибут - type , который следует установить в «text/xml», чтобы указать, что используется таблица стилей XSLT. (Чтобы использовать таблицы стилей другого типа - каскадирующие таблицы стилей (CSS, cascading stylesheets), обычно использующиеся с HTML - следует задать «text/css».) Второй атрибут - href , которому следует присвоить значение URI (вспомните, что XML использует не адреса URL, а идентификаторы URI, Uniform Resource Identifier) таблицы стилей:
Теперь при помощи процессора
(processor) XSLT можно применить таблицу planets.xsl к planets.xml и создать новый документ, planets.html . Процессор XSLT создает новый файл planets.html , который вы можете увидеть на рис. 1.2. Рис. 1.2.
HTML-документ, созданный процессором XSLT Как можно видеть на рис. 1.2, процессор XSLT считывает данные из planets.xml , применяет к ним правила из planets.xsl и создает HTML-таблицу в planets.html. Это наш первый пример XSLT-преобразования. Что здесь на самом деле происходит? У нас были XML-документ, planets.xml , и таблица стилей XSLT, planets.xsl . Но каким образом они объединились для создания planets.html ? XSL = XSLT + XSL-FO
Сам XSLT в действительности является частью более крупной спецификации - расширенного языка таблиц стилей, Extensible Stylesheet Language, или XSL. XSL предназначен для задания точного, до миллиметра, формата документов. Форматирующая часть XSL, представляющая гораздо более Преобразования XSLT-XSL
XSLT позволяет работать непосредственно с содержимым документов XML. Например, у вас может быть огромный документ XML, содержащий всю бейсбольную статистику за последний сезон, однако вас может интересовать только статистика для питчеров. Чтобы извлечь Версии XSLT
Спецификации XSLT разрабатывались значительно активнее, чем спецификации для всего XSL. Рекомендация XSLT 1.0 была окончательно принята 16 ноября 1999 г., и эта версия является сегодня основной версией XSLT.Затем появился рабочий проект XSLT 1.1 и, хотя первоначально он Что нужно для XSLT-преобразования
Для осуществления XSLT-преобразования, такого как преобразование planets.xml в planets.html, необходим XSLT-процессор. Для преобразований документов XML можно использовать XSLT тремя способами: используя отдельные программы, называемые процессорами XSLT. XSLT-преобразования на web-серверах
Можно осуществлять XSLT-преобразования на web-сервере - так чтобы XML-документ был преобразован до того, как web-сервер отправит его браузеру. Здесь самое распространенное преобразование - это преобразование документа XML в HTML, но Ресурсы XSLT
В Интернете можно найти огромное количество нужных нам сведений. Имейте в виду, что все приведенные далее адреса URL легко могут измениться; списки будут актуальны столь долго, сколько этого будут хотеть люди, занимающиеся поддержкой перечисленных Утилиты XSLT
В Интернете существует также много утилит XSLT - в следующем списке перечислены наиболее известные: Microsoft XSL API Extension, http://msdn.microsoft.com/downloads/webtechnology/xml/xslisapi.asp. Упрощает задачу выполнения XSLT-преобразований на стороне сервера; Microsoft XSL-to-XSLT Converter, Инструкции XSLT
В теле шаблона может присутствовать ряд элементов XSLT, называемых инструкциями: Расширяемость XSLT
Несмотря на кажущуюся сложность XSLT, он во многих отношениях ограничен по сравнению с языками программирования, и в процессорах XSLT сразу же начали появляться расширения XSLT. Например, Saxon представил элемент Отличия XSLT 1.1 от XSLT 1.0
Отсутствие result tree fragment
Главное и наиболее существенное отличие XSLT 1.1 от XSLT 1.0 состоит в том, что тип данных, известный в XSLT 1.0 как result tree fragment (результирующий фрагмент дерева) в XSLT 1.1. отсутствует. Вместо него в версии 1.1 используется множество узлов, Отличия XSLT 2.0 от XSLT 1.1
Прежде чем приступить к описанию отличий второй версии XSLT от версии 1.1 (и, соответственно, 1.0), следует сделать одно существенное замечание. Лицензионные соглашения Консорциума W3 не позволяют раскрывать широкой общественности внутренние материалы Главный писатель по вопросам технологий Вам кто-то послал по электронной почте файл XSLT, и вы не знаете, как его открыть? Может быть, вы нашли файл XSLT на вашем компьютере и вас заинтересовало, что это за файл? Windows может сказать вам, что вы не можете открыть его, или, в худшем случае, вы можете столкнуться с соответствующим сообщением об ошибке, связанным с файлом XSLT. До того, как вы сможете открыть файл XSLT, вам необходимо выяснить, к какому виду файла относится расширения файла XSLT. Tip:
Incorrect XSLT file association errors can be a symptom of other underlying issues within your Windows operating system. These invalid entries can also produce associated symptoms such as slow Windows startups, computer freezes, and other PC performance issues. Therefore, it highly recommended that you scan your Windows registry for invalid file associations and other issues related to a fragmented registry. Файлы XSLT имеют Файлы данных, который преимущественно ассоциирован с XSL Transform File. Иные типы файлов также могут использовать расширение файла XSLT. Если вам известны любые другие форматы файлов, использующие расширение файла XSLT, пожалуйста, свяжитесь с нами , чтобы мы смогли соответствующим образом обновить нашу информацию. Самый быстрый и легкий способ открыть свой файл XSLT - это два раза щелкнуть по нему мышью. В данном случае система Windows сама выберет необходимую программу для открытия вашего файла XSLT. В случае, если ваш файл XSLT не открывается, весьма вероятно, что на вашем ПК не установлена необходимая прикладная программа для просмотра или редактирования файлов с расширениями XSLT. Если ваш ПК открывает файл XSLT, но в неверной программе, вам потребуется изменить настройки ассоциации файлов в вашем реестре Windows. Другими словами, Windows ассоциирует расширения файлов XSLT с неверной программой. Установить необязательные продукты - FileViewPro (Solvusoft) | | | | Вы не уверены, какой тип у файла XSLT? Хотите получить точную информацию о файле, его создателе и как его можно открыть? Теперь можно мгновенно получить всю необходимую информацию о файле XSLT! Революционный XSLT Инструмент анализа файлов™ сканирует, анализирует и сообщает подробную информацию о файле XSLT. Наш алгоритм (ожидается выдача патента) быстро проанализирует файл и через несколько секунд предоставит подробную информацию в наглядном и легко читаемом формате.† Уже через несколько секунд вы точно узнаете тип вашего файла XSLT, приложение, сопоставленное с файлом, имя создавшего файл пользователя, статус защиты файла и другую полезную информацию. Чтобы начать бесплатный анализ файла, просто перетащите ваш файл XSLT внутрь пунктирной линии ниже или нажмите «Просмотреть мой компьютер» и выберите файл. Отчет об анализе файла XSLT будет показан внизу, прямо в окне браузера.
Просмотреть мой компьютер » Пожалуйста, также проверьте мой файл на вирусы Ваш файл анализируется... пожалуйста подождите. Не прошло и трёх лет с тех пор, как у меня зародилась мысль о том, что пора изучать XSLT -))). Мысль зародилась, а везде ещё стоял PHP 4 и зверствовал Salbotron , который, мягко говоря, не отличался высокой производительностью. Да и редко какой браузер мог похвастаться поддержкой этого самого XSLT. По этим соображениям изучение столь перспективного направления я отложил до лучших времён. На данный момент можно смело заявить, что эти времена настали, поскольку вышел PHP 5 с поддержкой XSLT и сносной объектной моделью, а все топовые браузеры уже сами уверенно держат преобразования, только подавай XML. :) Переводы на русский язык: Для лучшего понимания всего происходящего я рекомендую читать спецификации в следующем порядке: Особо пытливые могут также уделить внимание расширенному языку стилей XSL
. Что такое валидный XHTML? В первую очередь, это XML-документ, который должен соответствовать спецификации XML. Во-вторую, почти обычная HTML-страница, к которой все привыкли. Почему нужен именно XHTML? Исключительно из соображений совместимости и кросс-браузерности. Страница в XHTML будет с большей вероятностью отображаться корректно в популярных браузерах, чем обычный HTML. Для рядового клепателя страниц словосочетание XML-документ должно означать следующее: Также сам XHTML обязывает выполнять следующие условия: Пример простого документа XHTML1.0: И так обо всём по порядку. Объявление XML-документа, в котором указывается его версия и кодировка. Объявление пространства имён и используемого языка. Три версии XHTML1.0 предназначены для лучшей обратной совместимости: XHTML1.1 по сути является тем же XHTML1.0 Strict и призван вытеснить другие версии XHTML1.0. Однако, по сравнению с XHTML1.0 Strict, у него есть ряд отличий : Итак, если вам нужна наибольшая кросс-браузерность и совместимость с рекомендациями W3C, то XHTML1.1 самое оно! Из этих соображений результатом моих преобразований будет именно XHTML1.1. Что такое XSLT? Это язык преобразований XML-документа, который был разработан как часть расширенного языка стилей (XSL). Зачем нужен XSLT? Он позволяет реализовать схему, при которой данные хранятся отдельно, а их представление отдельно. То есть, один XML-документ преобразуется с помощью другого XML-документа (XSL, в котором находятся XSLT-шаблоны) в конечный документ. Результатом может быть XML, HTML или текстовый документ любого формата. Для того, чтобы воспользоваться XSLT-преобразованиями, в первую очередь нужно сформировать правильный стиль XSL и подключить его к XML-файлу. Валидным XSL-документом является XML-документ, у которого задано пространство имён xsl и присутствует корневой элемент stylesheet. В самом простом случае стиль может выглядеть, например, так: Этот стиль не содержит каких-либо явных определений шаблонов или других элементов XSL. Однако, его уже можно использовать. Чтобы посмотреть результат, достаточно сформировать произвольный XML-документ и подключить к нему этот стиль: За подключение стиля отвечает строка: При этом кодировка результата будет UTF-8, несмотря на то, что исходный документ был сформирован в windows-1251. К сожалению, браузеры обычно не позволяют просмотреть код результирующего документа, но модуль XSLT в PHP5 даёт возможность передать результирующий код в переменную, которую можно сохранить в файл. Поэтому, используя PHP, я приведу исходный код результирующего документа: Этот код не является валидным XML-документом и тем более XHTML1.1. Для того, чтобы сформировать нужный код, я усложню исходный XSL-стиль и добавлю туда необходимые шаблоны и преобразования. При этом исходный XML-документ останется без изменений. В качестве примера я приведу XSL-стиль, который при помощи XSLT будет выводить список атрибутов исходного XML-документа с их значениями, при этом будет формироваться валидный XHTML1.1. Итак, стиль: Чтобы понять, как он работает, я распишу каждое действие отдельно: Объявление XML-документа: Обязательным атрибутом является определение пространства имён xsl через атрибут xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
. Следующим шагом в корневом элементе stylesheet объявляется, каким образом нужно формировать результирующий документ: Основные атрибуты: Если метод вывода объявлен html, то значения атрибутов encoding
и media-type
будут подставлены в заголовок страницы ( Объявление основного шаблона: Атрибут xmlns="http://www.w3.org/1999/xhtml"
указывает на пространство имён xhtml, которое будет применено по умолчанию к этому элементу и всем дочерним элементам, у которых оно не задано явно. Атрибут xml:lang="ru"
указывает на язык, в котором сформирована страница (будущая). Эта часть стиля была нужна для формирования атрибутики валидного XHTML1.1 кода. Теперь что касается XSLT-преобразований: Вставка простого текста: Атрибут select
принимает выражение XPath, на основе которого делает выборку. Если выборка вернула список узлов, то начинает работать цикл по каждому элементу. В данном случае выборка вернёт список атрибутов для этого (корневого) и всех дочерних элементов. Проверка условия: В данном случае, если позиция элемента чётная (определяется вышестоящим if), то в стиль элемента Вывод значений элемента: Этот код подставит в вышестоящий элемент строку, собранную из имени текущего элемента и его значения. Содержимое атрибута select
соответствует XPath. Результатом обработки этого стиля (test.xsl) станет такой код: Этот код соответствует стандарту XHTML1.1 и был сформирован на основе исходного XML-документа. Для проверки можно воспользоваться валидатором от W3C, который расположен по адресу http://validator.w3.org/ . В браузере этот код выглядит примерно так: Дополнительную информацию по использованию XSLT в PHP5 можно найти по адресу http://ru2.php.net/manual/ru/book.xslt.php . «Товарищи, мы стоим на краю огромной пропасти! И я предлагаю сделать большой, решительный шаг вперёд!» 2019 Антон Прибора. При копировании материалов с сайта, пожалуйста, указывайте ссылку на источник. Рассмотрим типичный пример рендеринга HTML. Дан список музыкальных композиций в виде XML-документа.
Отобразим данный документ в виде HTML ul/li списка, как это показано ниже: Для этого используем следующее XSLT-преобразование:
]>
Данное преобразование вернёт нам следующий HTML:
XSLT-преобразование состоит из трёх шаблонов ( xsl:template). Каждый шаблон обслуживает свою сущность, что даёт нам возможность легко вносить изменения и делает код понятным. Если нам надо поменять отображение списка (например, добавить атрибут class), то мы редактируем шаблон match="PlayList" . Если же мы хотим изменить отображение элементов списка, то тут, совершенно очевидно, что стоить менять шаблон match="Track" . Фактически, XSLT не только даёт нам возможность разделить данные и представление (это задача любого шаблонизатора), но и позволяет разделять представления различных сущностей. Конечно, в более сложных случаях разделения добиться такого разделения бывает сложно. Очень легко прийти к ситуации, когда возникает «божественный шаблон», который делает всё, так же стоит бояться скатиться к «стрельбе дробью» кучей мелких шаблонов. Что мне очень нравится в XSLT, так это возможность отладки. Отладка помогает наглядно увидеть логику работы XSTL, структуру документа, значения переменных. Например, отладка поможет увидеть, что за сущность обрабатывает шаблон match="/" . В Visual Studio отладка XSLT запускается сочетанием клавиш ALT+F5 . Добавив в окно Watch XPath выражение " . " (точка), мы увидим, что текущий элемент шаблона - это корень (Root) документа. Здесь можно разместить контейнер div , или что-то относящееся ко всему XML-документу. Можно заметить, что в приведенных примерах присутствует сущность — Мы можем ее использовать, потому что определили ее в начале XSLT-документа
]>
Таким образом, — выводится, как символ с кодом — . Если нужно вывести строку «как есть», то стоит использовать CDATA следующим образом:
Хочу заострить внимание на элементе xsl:text . Он позволяет контролировать, что именно будет содержать TEXT-элемент. Значимость xsl:text очевидна на практике: XSLT-шаблон:
Полученный HTML:
Как видно из примера выше, отсутствие элемента xsl:text привело к появлению в HTML лишних переводов строк и пробелов. Безусловно, можно писать XSLT и без xsl:text , следующим образом:
Такой шаблон трудночитаем и есть большая вероятность, что при сопровождении в нём будут появлятся ошибки. Нужно стараться, чтобы форматирование XSLT-шаблона не влияло на результат трансформации. Именно поэтому я считаю, что использовать xsl:text - это хорошая практика. Для ветвлений в XSLT есть специальные элементы: xsl:if и xsl:choose . Но я считаю, что этими инструментами сильно злоупотребляют. Более интересен приём, позволяющий не загромождать шаблон ветвлениями. Рассмотрим пример реализации ветвлений: Дополним предыдущий пример возможностью выводить сообщение «Список пуст» в случае, если PlayList не содержит элементов Track . Решение с использованием xsl:choose будет таким:
]>
Решение с использованием дополнительного шаблона будет следующим:
]>
Второе решение, на мой взгляд, выглядит красивее: новая функциональность не добавила нового кода в старые шаблоны, новый шаблон максимально изолирован. Если понадобится добавить картинку к сообщению о пустом списке, то в первом случае скорее всего разбухнет элемент xsl:when в шаблоне match="PlayList" . А вот во втором случае изменения будут только в специализированном шаблоне. В предыдущем примере мы разделили две абсолютно разные ветки рендеринга элемента списка. Но что если ветки различаются незначительно? Здесь использование xsl:if и xsl:choose вполне оправдано. Но мне бы хотелось показать другой подход: использование параметра mode у элемента xsl:template . В следующем примере навесим разные стили на чётные и нечётные элементы списка.
]>
Для циклов в XSLT есть элемент xsl:for-each , но схожий эффект можно получить, используя обычный xsl:apply-templates . Выведем список композиций, отсортированный по длительности.
]>
]>
Как видно из кода, первый вариант короче и проще, но он нарушил принцип разделения ответственности для шаблонов. Теперь шаблон match="PlayList" стал содержать логику отображения элемента Track . Казалось бы, ничего страшного, но представим задачу, когда в списке встречаются композиции с Id и без. Для композиции с Id нужно отрендерить ссылку, а для остальных вывести только текст. Вариант с использованием xsl:for-each:
]>
Вариант с использованием xsl:apply-templates:
]>
В случае xsl:for-each нам потребовалось добавлять ветвление, а в случае xsl:apply-templates - новый шаблон. Если бы шаблон match="PlayList" уже содержал ветвления и логику, то нам понадобилось некоторое время, чтобы разобраться, куда именно нам нужно вставить ветку. Вариант с xsl:apply-templates лишён этого недостатка, поскольку мы лишь декларируем новый шаблон, а не пытаемся внедриться в старые. Использование xsl:for-each имеет ещё одну большую опасность. Если вы видите произвольный участок кода внутри шаблона match="PlayList" , то предполагаете, что текущий элемент это PlayList , однако xsl:for-each меняет контекст. Увидев следующий код код:
Вам потребуется внимательно присмотреться к контексту, чтобы понять, что select="." на самом деле выбирает текущий Track . Шаблон mode="TrackName" match="Track" был добавлен для избежания дублирования кода, отображаюшего название. Я не сделал этого раньше, потому что в этом не было необходимости. Как только я заметил дублирование, я провёл рефакторинг и вынес общую логику отображения в новый шаблон. xsl:for-each - это способ не плодить сущности. Вы просто добавляете логику отображения внутрь xsl:for-each и всё прекрасно работает. Проблемы начинаются потом, когда тело цикла разрастается, а проводить рефакторинг xsl:for-each намного сложнее, чем выносить дублированный код. XSLT - это достаточно гибкий инструмент, он даёт возможность решить вашу задачу разными путями. Однако, при написании XSLT стоит уделять особое внимание сопровождаемости шаблонов. Надеюсь мои практические советы помогут вам писать более понятный код.
Name Mass Radius Day Ответ:
Как открыть ваш файл XSLT:
XSLT Multipurpose Internet Mail Extensions (MIME):
XSLT Инструмент анализа файлов™
Перетащите файл XSLT сюда для начала анализа
2. Валидный XHTML
.
, ).
3. XSLT-преобразования
Файл - test.xsl
xml version=?>
Результат - исходный код
xml version="1.0"
encoding="windows-1251"
?>
"http://www.w3.org/1999/xhtml"
xml:lang="ru"
>
IE 6
FireFox 3
Opera 9.02
// Вывод кода HTML в виде текста
header("Content-Type: text/plain;"
);
// Объект исходного XML-документа
$xml
= new
DOMDocument(null
, "windows-1251"
);
$xml
->load("test.xml"
);
// Объект стиля
$xsl
= new
DOMDocument(null
, "windows-1251"
);
$xsl
->load("test.xsl"
);
// Создание парсера
$proc
= new
XSLTProcessor();
// Подключение стиля к парсеру
$proc
->importStylesheet($xsl
);
// Обработка парсером исходного XML-документа
$parsed
= $proc
->transformToXml($xml
);
// Вывод результирующего кода
echo
$parsed
;
// Запись файла с результирующим кодом
file_put_contents("parsed.html"
, $parsed
);
?>
Мысли вслух
Отладка XSLT
Работа с сущностями XML
Элемент xsl:text
Ветвления
Циклы и сортировка в XSLT
Заключение
Рекомендуем почитать