Алексей Валиков - Технология XSLT
- Название:Технология XSLT
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2002
- Город:Санкт-Петербург
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Алексей Валиков - Технология XSLT краткое содержание
Книга посвящена разработке приложений для преобразования XML-документов с использованием XSLT — расширяемого языка стилей для преобразований. Обсуждается применение языков XSLT и XPath в решении практических задач: выводу документов в формате HTML, использованию различных кодировок для интернационализации и, в частности, русификации приложений, вопросам эффективности существующих подходов для решения проблем преобразования. Для иллюстрации материала используется большое количество примеров.
Для начинающих и профессиональных программистов
Технология XSLT - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
□ xsl:version
— это свойство должно возвращать номер версии языка XSLT, которую поддерживает данный процессор.
□ xsl:vendor
— это свойство должно возвращать текстовую информацию о производителе используемого процессора.
□ xsl:vendor-uri
— это свойство должно возвращать URL производителя — как правило, xsl:vendor-uri
— это адрес Web-сайта производителя процессора.
К сожалению, в первой версии языка XSLT процессоры обязаны поддерживать только эти свойства. Очень полезным, было бы, например, свойство, возвращающее имя преобразования или преобразовываемого файла. К сожалению, ничего подобного в стандарте не предусмотрено.
В качестве примера приведем небольшой шаблон, выводящий в виде комментария информацию о процессоре.
| XSLT Version:
select="format-number(system-property('xsl:version'), '0.0')"/>
| XSLT Processor:
| URL:
+
Процессор SAXON, написанный Майклом Кеем (Michael Kay), выводит следующий комментарий:
Ожидается, что в будущих версиях XSLT набор системных свойств будет расширен. Кроме того, многие процессоры поддерживают дополнительные системные свойства, не оговоренные в спецификации.
Глава 9
Совместное использование XSLT с другими языками программирования
XSLT и другие языки
Несмотря на то, что XSLT является вполне самостоятельным языком, его очень часто используют как составную часть в проектах, которые пишутся на других языках программирования. Тому существует множество причин. Попытаемся выделить главные из них.
□ Традиционные императивные языки программирования очень плохо подходят для обработки древовидно структурированных данных. Программы, действия в которых непременно выполняются последовательно одно за другим, в общем случае не могут эффективно (с точки зрения компактности и понятности кода) обработать сложные иерархические структуры.
□ В некоторых случаях XSLT-преобразования документов оказываются, наоборот, настолько сложны, что из соображений эффективности и простоты бывает намного легче использовать традиционные языки.
□ Во многих проектах использование XSLT может обеспечить легкую и гибкую интеграцию. Например, если одним из этапов процедуры обмена XML-данными будет XSLT-преобразование, расширение количества форматов, известных системе, будет производиться не дописыванием исходного кода, а добавлением преобразований. А поскольку XSLT обеспечивает не только синтаксические, но и семантические преобразования, то есть преобразования на структурном уровне, роль этого языка в проектах интеграции, основанных на использовании XML, может быть очень велика.
□ Использование XSLT-преобразований может коренным образом упростить создание Web-ориентированных приложений. Надо сказать, что во многих случаях XSLT-преобразования просто избавляют от необходимости программировать что-либо на других языках; однако даже тогда, когда без традиционных подходов не обойдешься, XSLT служит хорошую службу, обеспечивая простой, удобный и легко настраиваемый вывод фрагментов HTML.
В этом разделе мы приведем примеры использования преобразований в различных языках и средах разработки. Конечно же, предлагаемые программы очень просты, но и их уже должно быть достаточно, чтобы начать применять XSLT в составе своих проектов.
Выполнение XSLT-преобразований в Object Pascal
В этой главе мы приведем пример использования XSLT-преобразований в простом проекте, созданном в среде разработки Delphi. Базовым языком Delphi является Object Pascal. Решение, которое мы предложим, будет основываться на использовании библиотеки MSXML Parser 3.0 от Microsoft.
Небольшое приложение, которое мы создадим, будет преобразовывать XML-документ (по умолчанию — " source.xml
") при помощи XSLT-преобразования (по умолчанию — " stylesheet.xsl
") и показывать результат преобразования.
Импорт MSXML в Delphi
Первым шагом после создания нового проекта (назовем его DelphiXML
) будет импортирование библиотеки типов MSXML. Это позволит использовать в программе классы, интерфейсы и методы MSXML, в том числе и XSLT-процессор.
Для того чтобы импортировать библиотеку типов MSXML, выберем пункт меню Project/Import Type Library… (рис. 9.1).

Рис. 9.1. Импорт MSXML — шаг 1
В появившемся диалоге выберем пункт "Microsoft XML v3.0 (Version 3.0)" и создадим новый модуль кнопкой Create Unit (рис. 9.2).

Рис. 9.2. Импорт MSXML — шаг 2
Получившийся файл MSXML2_TLB.pas
присоединим к проекту (Project/Add to Project…); теперь можно приступать к работе.
Для того чтобы использовать MSXML в нашем проекте, нам потребуется включить модуль MSXML2_TLB
в список используемых модулей. Кроме того, для обработки исключений нам также потребуется модуль comobj
. В итоге объявление uses
будет выглядеть следующим образом:
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, ComCtrls, MSXML2_TLB, comobj;
Форма проекта
Нам понадобится форма с тремя страничками и тремя компонентами TMemo
. В первом будет показываться исходный текст преобразуемого документа, во втором — XSLT-преобразование и в третьем — результат преобразования.
Приблизительный внешний вид формы показан на рис. 9.3.

Рис. 9.3. Внешний вид формы проекта
Использование DOMDocument
Объектная модель XML-документа в импортированной библиотеке будет представлена интерфейсом DOMDocument
. В главном модуле проекта мы объявим две переменные, которые будут соответствовать обрабатываемому документу ( xmlSource
) и документу преобразования ( xmlStylesheet
):
var
xmlSource: DOMDocument;
xmlStylesheet: DOMDocument;
Для того чтобы создать экземпляры объектов наших документов, мы воспользуемся классом СoDOMDocument
, который был создан в модуле MSXML2_TLB
при импортировании. Метод Create
этого класса создаст объекты, к методам и свойствам которых мы будем обращаться посредством уже упомянутого интерфейса DOMDocument
:
xmlSource := CoDOMDocument.Create;
xmlStylesheet := CoDOMDocument.Create;
Для того чтобы загрузить XML-файл, мы воспользуемся функцией load
интерфейса DOMDocument
:
xmlSource.load('source.xml');
При загрузке файла вполне вероятны ошибки. Например, XML-документ может не являться хорошо оформленным. Для того чтобы успешно справиться с такого рода исключительными ситуациями, мы будем использовать конструкцию try...except
и отрабатывать исключение EoleException
:
Интервал:
Закладка: