» » » Алексей Валиков - Технология XSLT


Авторские права

Алексей Валиков - Технология XSLT

Здесь можно скачать бесплатно "Алексей Валиков - Технология XSLT" в формате fb2, epub, txt, doc, pdf. Жанр: Программирование, издательство БХВ-Петербург, год 2002. Так же Вы можете читать книгу онлайн без регистрации и SMS на сайте LibFox.Ru (ЛибФокс) или прочесть описание и ознакомиться с отзывами.
Алексей Валиков - Технология XSLT
Рейтинг:
Название:
Технология XSLT
Издательство:
БХВ-Петербург
Год:
2002
ISBN:
нет данных
Скачать:

99Пожалуйста дождитесь своей очереди, идёт подготовка вашей ссылки для скачивания...

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.

Вы автор?
Жалоба
Все книги на сайте размещаются его пользователями. Приносим свои глубочайшие извинения, если Ваша книга была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.

Как получить книгу?
Оплатили, но не знаете что делать дальше? Инструкция.

Описание книги "Технология XSLT"

Описание и краткое содержание "Технология XSLT" читать бесплатно онлайн.



Книга посвящена разработке приложений для преобразования XML-документов с использованием XSLT — расширяемого языка стилей для преобразований. Обсуждается применение языков XSLT и XPath в решении практических задач: выводу документов в формате HTML, использованию различных кодировок для интернационализации и, в частности, русификации приложений, вопросам эффективности существующих подходов для решения проблем преобразования. Для иллюстрации материала используется большое количество примеров.

Для начинающих и профессиональных программистов






    <xsl:value-of select="name"/>

   </A>

   <xsl:text>&#xA0;&#xA0;&#xA0;</xsl:text>

  </xsl:if>

 </xsl:template>


 <!-- Шаблон создания формы для выбранного адресата -->

 <xsl:template match="person" mode="form">

  <!--

   | Находим элемент, описывающий параметры службы отправки сообщений

   | текущему адресату

   +-->

  <xsl:variable name="service"

   select="document('services.xml')/services/

   service[@id = current()/service/@id]"/>

  <br/>

  <form

   action="{$service/action}" method="{$service/method}">

   <input type="hidden"

    name="{$service/number}"

    value="{number}"/>

   <textarea class="no-scrollbar" rows="10" cols="50"

    name="{$service/text}"/>

   <br/>

   <input class="flat" type="submit" value="Послать сообщение"/>

  </form>

 </xsl:template>


 <xsl:template name="head">

  <head>

   <title>SMS Center</title>

   <link rel="stylesheet" type="text/css" href="style.css"/>

  </head>

 </xsl:template>


</xsl:stylesheet>

Теперь дело осталось за ASP-страницей, которая применяла бы преобразование stylesheet.xsl к документу source.xml и возвращала результат клиенту.

Листинг 9.12. ASP-страница, использующая XSLT-преобразования

<%@ LANGUAGE = VBScript %>

<%

 ' Загружаем входящий документ

 Dim source

 Set source = Server.CreateObject("MSXML2.FreeThreadedDOMDocument.3.0")

 source.load Server.MapPath("source.xml")


 ' Загружаем преобразование

 Dim stylesheet

 Set stylesheet =

  Server.CreateObject("MSXML2.FreeThreadedDOMDocument.3.0")

 stylesheet.load Server.MapPath("stylesheet.xsl")


 ' Создаем объект XSLTemplate для преобразования

 Dim templates

 Set templates = Server.CreateObject("MSXML2.XSLTemplate")

 templates.stylesheet = stylesheet.documentElement


 ' Создаем объект XSLT-процессора

 Dim processor

 Set processor = templates.createProcessor

 processor.input = source


 ' Присваиваем параметру id значение параметра запроса id

 ' (то, что передано в sms.asp?id=...)

 processor.addParameter "id", "" + Request.QueryString("id"), ""

 ' Выполняем преобразование

 processor.transform

 ' Возвращаем результат

 Response.Charset = "windows-1251"

 Response.Write processor.output

%>

На рис. 9.11 показаны результаты работы sms.asp для id=p1 и id=p2.

Рис. 9.11. Внешний вид страницы, возвращаемой sms.asp

При вызове страницы sms.asp или sms.asp?id=p1 форма отправки сообщений будет сгенерирована в следующем виде:

<form action="http://www.mtnsms.com/sendsms.php" method="GET">

 <input type="hidden" name="num" value="18005557684">

 <textarea class="no-scrollbar" rows="10" cols="50" name="msg">

 </textarea>

 <br><br>

 <input class="flat" type="submit" value="Послать сообщение">

</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 будет выглядеть следующим образом.

Листинг 9.13. Простейший вызов 4Suite

python -с "import sys;from xml.xslt import _4xslt;_4xslt.Run(sys.argv[1:])" -i source.xml stylesheet.xsl

Использование 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

ALTER TABLE SOURCE

 ADD (FOREIGN KEY (STYLESHEETID) REFERENCES 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-скрипт, загружающий документ и преобразование в БД

-- Сохраняем преобразование

INSERT INTO STYLESHEET VALUES

(1, '<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>                                 ');


-- Сохраняем документ

INSERT INTO SOURCE VALUES

(1, '<A>value</A>', 1);

Для того чтобы выполнять преобразования в SELECT-выражении представления таблицы SOURCE, мы напишем функцию PROCESS, которая будет возвращать результат обработки документа с уникальным идентификатором, заданным параметром sourceID.

Листинг 9.19. Функция PROCESS

CREATE OR REPLACE FUNCTION PROCESS (sourceID NUMBER) RETURN VARCHAR2 IS


 -- Инициализация XML-парсера и XSLT-процессора

 parser XMLPARSER.Parser := XMLPARSER.newParser;

 processor XSLPROCESSOR.Processor := XSLPROCESSOR.newProcessor;


 -- Переменные для CLOB-значений входящего документа и преобразования

 sourceCLOB CLOB;

 stylesheetCLOB CLOB;


 -- Переменные для DOM-объектов входящего документа и преобразования

 sourceXML XMLDOM.DOMDocument;

 stylesheetXML XMLDOM.DOMDocument;


 -- Переменная для объекта преобразования

 stylesheet XSLPROCESSOR.Stylesheet;


 -- Переменная результата

 result varchar2(32767);


BEGIN


 -- Получаем CLOB-значение входящего документа в переменную sourceCLOB

 SELECT CONTENT

 INTO sourceCLOB

 FROM SOURCE

 WHERE ID = sourceID;


На Facebook В Твиттере В Instagram В Одноклассниках Мы Вконтакте
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!

Похожие книги на "Технология XSLT"

Книги похожие на "Технология XSLT" читать онлайн или скачать бесплатно полные версии.


Понравилась книга? Оставьте Ваш комментарий, поделитесь впечатлениями или расскажите друзьям

Все книги автора Алексей Валиков

Алексей Валиков - все книги автора в одном месте на сайте онлайн библиотеки LibFox.

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Отзывы о "Алексей Валиков - Технология XSLT"

Отзывы читателей о книге "Технология XSLT", комментарии и мнения людей о произведении.

А что Вы думаете о книге? Оставьте Ваш отзыв.