Применение XSLT с активными серверными страницами
Применение XSLT с активными серверными страницами
Активные серверные страницы (Active Server Pages, ASP) выполняются на серверах Microsoft Windows NT или 2000, поэтому в ближайшем примере для преобразования planets.xml при помощи planets.xsl и возврата результата в виде документа HTML я воспользуюсь процессором Microsoft MSXML.
Это все то же преобразование, которое нам уже много раз встречалось, — создание HTML-таблицы данных о планетах — но на этот раз преобразование будет выполнено на web-сервере, который затем отправит его пользователю. В начале сценария ASP я установил тип содержимого MIME результирующего документа в «text/html», поэтому он будет трактоваться как HTML:
<%@LANGUAGE="VBScript"%>
<%
Response.ContentType = "text/html"
.
.
.
Затем, во многом аналогично предыдущим примерам в этой главе с JavaScript, я создаю два объекта документа MSXML, один для документа XML, а другой — для документа XSL:
<%@LANGUAGE="VBScript"%>
<%
Response.ContentType = "text/html"
Dim docXML
Dim docXSL
Set docXML = Server.CreateObject("MSXML2.DOMDocument.3.0")
Set docXSL = Server.CreateObject("MSXML2.DOMDocument.3.0")
.
.
.
Процедура загрузки этих документов на сервере во многом похожа на процедуру с использованием JavaScript, за тем исключением, что здесь правильные пути файлов получаются при помощи метода MapPath объекта Server. В данном случае я поместил planets.xml и planets.xsl в тот же каталог, что и сценарий ASP, поэтому документы загружаются так:
<%@LANGUAGE="VBScript"%>
<%
Response.ContentType = "text/html"
Dim docXML
Dim docXSL
Set docXML = Server.CreateObject("MSXML2.DOMDocument.3.0")
Set docXSL = Server.CreateObject("MSXML2.DOMDocument.3.0")
docXML.ValidateOnParse = True
docXSL.ValidateOnParse = True
docXML.load Server.MapPath("planets.xml")
docXSL.load Server.MapPath("planets.xsl")
.
.
.
Теперь нам осталось только применить метод transformNode (как в примере с JavaScript раньше) для выполнения XSLT-преобразования и вывода результатов (листинг 10.12).
Листинг 10.12. XSLT на сервере с применением ASP
<%@LANGUAGE="VBScript"%>
<%
Response.ContentType = "text/html"
Dim docXML
Dim docXSL
Set docXML = Server.CreateObject("MSXML2.DOMDocument.3.0")
Set docXSL = Server.CreateObject("MSXML2.DOMDocument.3.0")
docXML.ValidateOnParse = True
docXSL.ValidateOnParse = True
docXML.load Server.MapPath("planets.xml")
docXSL.load Server.MapPath("planets.xsl")
strOutput = docXML.transformNode(docXSL)
Response.Write strOutput
%>
Результат этого преобразовании ASP показан на рис. 10.5. Теперь вы научились выполнению XSLT-преобразований на web-серверах.
Рис. 10.5. Применение XSLT с ASP
Нужно сделать одно замечание: при выполнении XSLT-преобразований на сервере можно подумать об оптимизации ваших преобразований в зависимости от клиента, так как необязательно генерировать для карманного компьютера тот же экран, что и для браузера настольного компьютера. Например, можно настроить ответ вашего серверного сценария ASP (где я проверяю значение серверной переменной http_user_agent чтобы определить, использует ли клиент Internet Explorer) следующим образом:
<%@LANGUAGE="VBScript"%>
<%
Response ContentType = "text/html"
If instr(request,servervariables("http_user_agent"), "MSIE") = 0 then
Response.Write "Sorry, not optimized for your device."
Response.End
End If
.
.
.
ОТДЕЛЕНИЕ ДАННЫХ ОТ ИХ ПРЕДСТАВЛЕНИЯ
Одной из преобладающих тенденций в последнее время является стремление отделить данные от представляющего их кода. Рассмотренный пример демонстрирует преимущества такого подхода: единственный набор данных можно преобразовывать в рабочем порядке для различных браузеров.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
XSL = XSLT + XSL-FO
XSL = XSLT + XSL-FO Сам XSLT в действительности является частью более крупной спецификации — расширенного языка таблиц стилей, Extensible Stylesheet Language, или XSL. XSL предназначен для задания точного, до миллиметра, формата документов. Форматирующая часть XSL, представляющая гораздо более
Ресурсы XSLT
Ресурсы XSLT В Интернете можно найти огромное количество нужных нам сведений. Имейте в виду, что все приведенные далее адреса URL легко могут измениться; списки будут актуальны столь долго, сколько этого будут хотеть люди, занимающиеся поддержкой перечисленных
Применение XSLT с Java Server Pages
Применение XSLT с Java Server Pages Для работы с активными серверными страницами я использовал процессор MSXML фирмы Microsoft, но серверные страницы Java (Java Server Pages, JSP) не обязаны выполняться на серверах на платформе Windows, поэтому с JSP я не использую MSXML. Для выполнения XSLT-преобразования и
Применение XSLT с сервлетами Java
Применение XSLT с сервлетами Java Выполнять XSLT-преобразования на сервере можно также при помощи сервлетов (servlet) Java. Хотя многие процессоры XSLT предоставляют свои собственные версии сервлетов, я считаю, что гораздо проще самостоятельно выполнить преобразование при помощи Xalan
Глава 11 Применение XSLT для создания документов XSL-FO
Глава 11 Применение XSLT для создания документов XSL-FO Мы уже рассмотрели XSLT-преобразования из XML в XML, HTML, XHTML, RTF, простой текст, JavaScript и даже в реляционные базы данных. В этой и следующей главах вы познакомитесь с новым преобразованием, для которого и создавались XSLT:
Управление страницами
Управление страницами После окончания работы над той или иной страницей обратите внимание на кнопку «Дополнительные действия», расположенную рядом с опцией редактирования. Команда «История версий» выведет на экран список ревизий страницы с автором и датой изменений, а
Урок 8 От теории к практике: трюки с веб-страницами
Урок 8 От теории к практике: трюки с веб-страницами Итак, начинаем следующий урок! Наконец-то мы перейдем от нудной теории к интересной практике. Так что бодренько сделайте следующее.1. Включите компьютер и соединитесь с Интернетом.2. Запустите браузер.3. Загрузите любой
Отличия XSLT 1.1 от XSLT 1.0
Отличия 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 2.0 от XSLT 1.1 Прежде чем приступить к описанию отличий второй версии XSLT от версии 1.1 (и, соответственно, 1.0), следует сделать одно существенное замечание. Лицензионные соглашения Консорциума W3 не позволяют раскрывать широкой общественности внутренние материалы
Работа со страницами
Работа со страницами В ходе работы с документом создается множество страниц. Для полноценной работы с документом есть возможность давать имена страницам, копировать их, вносить в них изменения, переходить со страницы на страницу, перемещать, распечатывать или удалять
Работа со страницами
Работа со страницами В ходе работы с документом создается множество страниц. Для полноценной работы с документом есть возможность копировать страницы, вносить в них изменения, переходить со страницы на страницу, перемещать, распечатывать или удалять страницы. Все эти
Работа со страницами
Работа со страницами В ходе работы с документом создается множество страниц. Для полноценной работы с документом есть возможность копировать страницы, вносить в них изменения, переходить со страницы на страницу, перемещать, распечатывать или удалять страницы. Все эти
Работа со страницами
Работа со страницами В процессе работы с документом пользователь создает много страниц, которые требуют определенной организации.Переход между страницами документаПереход между страницами документа осуществляется с помощью кнопок Следующая страница и Предыдущая
Работа со страницами
Работа со страницами В процессе работы с документом пользователь создает много страниц, которые требуют определенной организации.Переход между страницами документаПереход между страницами документа осуществляется с помощью кнопок Следующая страница и Предыдущая
Урок 3.3. Работа с веб-страницами и файлами из Интернета
Урок 3.3. Работа с веб-страницами и файлами из Интернета Поиск в Интернете Для поиска информации в Интернете используются специальные поисковые серверы: www.google.com, www.yandex.ru и многие другие. В Internet Explorer 7 имеется встроенная строка поиска, с помощью которой можно отсылать