</form>
Для sms.asp?id=p2
форма будет иметь вид:
<form action='http://www.smshost.net/servlets/sms' method='POST'>
<input type='hidden' name='phone' value='447856273447'>
<textarea class='no-scrollbar' rows='10' cols='50' name='message'>
</textarea>
<br><br>
<input class='flat' type='submit' value='Послать сообщение'>
</form>
Выполнение XSLT-преобразований в Python
Пример использования XSLT-преобразований в Python, который мы продемонстрируем ниже, будет основываться на использовании библиотек 4Suite и PyXML.
Простейший скрипт, преобразующий документ source.xml
при помощи преобразования stylesheet.xsl
будет выглядеть следующим образом.
python -с 'import sys;from xml.xslt import _4xslt;_4xslt.Run(sys.argv[1:])' -i source.xml stylesheet.xsl
Использование 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
.
Прежде всего, создадим таблицы и ключи, соответствующие приведенной выше схеме базы данных.
-- Создаем таблицу 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
ALTER TABLE SOURCE
ADD (FOREIGN KEY (STYLESHEETID) REFERENCES STYLESHEET);
После того, как схема базы данных была создана, в нее можно добавить записи, содержащие преобразования и обрабатываемые ими документы. Мы ограничимся простым преобразованием и еще более простым документом.
<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>
<A>value</A>
-- Сохраняем преобразование
INSERT INTO STYLESHEET VALUES
(1, '<xsl:stylesheet '||
', version='1.0' '||
' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> '||