Использование XSLT-процессора в собственных программах на Python ненамного сложнее.
Листинг 9.14. Использование XSLT-процессора в Python
# Импортируем библиотеки
import sys
from xml.xslt.Processor import Processor
# Создаем XSLT-процессор
processor = Processor
#
Загружаем XSLT-преобразование
processor.appendStylesheetUri('stylesheet.xsl')
# Выполняем преобразование
result = processor.runUri('source.xml')
# Выводим результирующий документ print result
Выполнение XSLT-преобразований в PL/SQL
Универсальность технологии XSLT позволяет использовать ее на самых различных уровнях архитектуры приложений. В этом разделе мы приведем пример использования преобразований внутри базы данных.
На этот раз в качестве целевой платформы будет использоваться база данных Oracle 8i, которая обеспечивает поддержку XSLT несколькими встроенными пакетами:
XMLDOM
,
XMLPARSER
и
XSLPROCESSOR
.
Представим себе следующую схему элементарной БД (рис. 9.12):
Рис. 9.12. Схема простой базы данных
Таблица STYLESHEET содержит XSLT-преобразования, которые хранятся в полях
CONTENT
, поле
ID
указывает уникальный идентификатор каждого из них.
Таблица
SOURCE
содержит XML-документы (поле
CONTENT
), каждому из которых соответствует некоторое преобразование (внешний ключ
STYLESHEETID
). Нашей задачей будет создание представления, в котором документы, хранящиеся в таблице
SOURCE
, будут обрабатываться соответствующими преобразованиями из таблицы
STYLESHEET
.
Прежде всего, создадим таблицы и ключи, соответствующие приведенной выше схеме базы данных.
Листинг 9.15. Создание схемы БД
– - Создаем таблицу stylesheet
CREATE TABLE STYLESHEET
(ID INTEGER NOT NULL,
CONTENT CLOB NULL);
– - Создаем первичный ключ таблицы STYLESHEET
ALTER TABLE STYLESHEET
ADD (PRIMARY KEY (ID));
– - Создаем таблицу SOURCE
CREATE TABLE SOURCE
(ID INTEGER NOT NULL,
CONTENT CLOB NULL,
STYLESHEETID INTEGER NOT NULL);
– - Создаем первичный ключ таблицы SOURCE
ALTER TABLE SOURCE
ADD (PRIMARY KEY (ID));
– - Создаем внешний ключ, связывающий таблицы SOURCE и STYLESHEET
того, как схема базы данных была создана, в нее можно добавить записи, содержащие преобразования и обрабатываемые ими документы. Мы ограничимся простым преобразованием и еще более простым документом.
Листинг 9.16. Преобразование
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="A">
<B><xsl:value-of select="."/></B>
</xsl:template>
</xsl:stylesheet>
Листинг 9.17. Обрабатываемый документ
<A>value</A>
Листинг 9.18. SQL-скрипт, загружающий документ и преобразование в БД