Стивен Холзнер - XSLT

Тут можно читать онлайн Стивен Холзнер - XSLT - бесплатно полную версию книги (целиком) без сокращений. Жанр: Интернет, издательство Питер, год 2002. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Стивен Холзнер - XSLT краткое содержание

XSLT - описание и краткое содержание, автор Стивен Холзнер, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Эта книга посвящена XSLT — мощным и удобным системам преобразования документов. В ней не только рассматривается весь синтаксис XSLT, от основ до специальных аспектов, но и подробно излагаются современные способы использования XSLT.

Вы найдете сотни практических примеров, таких как осуществление преобразований XSLT на web-cepвepax, подключение к базам данных и использование браузеров для осуществления преобразований на лету.

Книга рассчитана на всех, кто хочет изучать XSLT и использовать его на практике

XSLT - читать онлайн бесплатно полную версию (весь текст целиком)

XSLT - читать книгу онлайн бесплатно, автор Стивен Холзнер
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Applying Dynamic Styles

var XMLDocument;

var XSLDocument;

var HTMLtarget;

function initialize() {

XMLDocument = new ActiveXObject('MSXML2.DOMDocument.3.0');

XSLDocument = new ActiveXObject('MSXML2.DOMDocument.3.0');

HTMLtarget = document.all['targetDIV'];

XMLDocument.validateOnParse = true;

XMLDocument.load('planets.xml');

if (XMLDocument.parseError.errorCode != 0) {

HTMLtarget.innerHTML = "Error!";

return false;

}

XSLDocument.validateOnParse = true;

XSLDocument.load('planets.xsl');

if (XSLDocument.parseError.errorCode != 0) {

HTMLtarget.innerHTML = "Error!";

return false;

}

HTMLtarget.innerHTML = XMLDocument.transformNode(XSLDocument);

}

.

.

.

Эту часть вы уже видели раньше. Но пользователь теперь может отсортировать таблицу щелчком мыши по массе, радиусу и т.д. Для новой сортировки таблицы я написал функцию sort— ей при щелчке на кнопке передается имя узла (например, «MASS»), по которому нужно провести сортировку. Вот как создаются различные кнопки, показанные на рис. 10.3:

Затем в функции sortя хочу выполнить новую сортировку по имени переданного узла. Для этого я изменяю атрибут selectэлемента на имя нового узла, по которому нужно сортировать. Вот как теперь выглядит атрибут select.

Я могу обратиться к этому узлу из таблицы стилей, теперь хранимой в объекте XSLDocument, передав в метод selectSingleNodeупомянутого объекта выражение XPath. Метод selectSingleNodeвозвращает объект node, и можно изменить текстовое значение узла при помощи свойства nodeValueобъекта node. В таком случае я только устанавливаю атрибут select в имя нового узла, по которому будет вестись сортировка:

Applying Dynamic Styles

function initialize() {

.

.

.

}

function sort(sortNode) {

(XSLDocument.selectSingleNode("//xsl:sort/@select")).nodeValue

= sortNode;

.

.

.

}

.

.

Теперь все, что осталось сделать, — снова выполнить преобразование и вывести результаты:

Applying Dynamic Styles

function initialize() {

.

.

.

}

function sort(sortNode) {

(XSLDocument.selectSingleNode("//xsl:sort/@select")).nodeValue

= sortNode;

HTMLtarget.innerHTML = XMLDocument.transformNode(XSLDocument);

}

.

.

.

Операция завершена. Результаты показаны на рис. 10.3. При щелчке на кнопке таблица сортируется заново по выбранному значению узла (имейте в виду, что сортировка ведется по алфавиту; сортировка по числовым значениям обсуждается в главе 5, где описывается элемент ) и отображается еще раз с новым порядком сортировки. Вот вся HTML-страница (листинг 10.3).

Листинг 10.3. Применение динамических XSLT-преобразований

Applying Dynamic Styles

var XMLDocument;

var XSLDocument;

var HTMLtarget;

function initialize() {

XMLDocument = new ActiveXObject('MSXML2.DOMDocument.3.0');

XSLDocument = new ActiveXObject('MSXML2.DOMDocument.3.0');

HTMLtarget = document.all['targetDIV'];

XMLDocument.validateOnParse = true;

XMLDocument.load('planets.xml');

if (XMLDocument.parseError.errorCode != 0) {

HTMLtarget.innerHTML = "Error!";

return false;

}

XSLDocument.validateOnParse = true;

XSLDocument load('planets.xsl');

if (XSLDocument.parseError.errorCode != 0) {

HTMLtarget.innerHTML = "Error!";

return false;

}

HTMLtarget.innerHTML = XMLDocument.transformNode(XSLDocument);

}

function sort(sortNode) {

(XSLDocument.selectSingleNode("//xsl:sort/@select")).nodeValue

= sortNode;

HTMLtarget.innerHTML = XMLDocument.transformNode(XSLDocument);

}



На самом деле загрузить документы XML и XSL в Internet Explorer можно несколькими способами. Для создания объектов XMLDocumentи XSLDocumentя использовал класс ActiveXObject, но эти объекты можно создавать и непосредственно обращаясь к содержащим документы XML объектам ActiveX по идентификатору класса, хранимому в реестре Windows. В следующем примере я таким образом загружу planets.xmlи planets.xslв XMLDocumentи XSLDocument:

XMLDocument = document.all['XMLdoc'];

XSLDocument = document.all['XSLdoc'];

XMLDocument.load('planets.xml');

XSLDocument.load(' planets.xsl');

.

.

.

CLASSID="clsid:f5078f32-c551-11d3-89b9-0000f81fe221">

CLASSID="clsid:f5078f32-c551-11d3-89b9-0000f81fe221">

Эта техника не так надежна, как использование класса ActiveXObject, поскольку идентификаторы классов могут различаться в разных версиях Internet Explorer. (Приведены идентификаторы классов для Internet Explorer 5.5). Но есть еще один способ загрузить документы XML и XSL в Internet Explorer — при помощи участков (island) XML.

Internet Explorer и участки данных XML

В Internet Explorer есть специальный тег , при помощи которого можно создавать участки (island) XML. Участок XML может содержать либо сам код XML, либо ссылку на XML-документ.

Участки XML упрощают загрузку документов XML и XSL, поэтому их стоит здесь рассмотреть. В следующем примере я создаю два участка XML, sourceDocumentи stylesheet, и загружаю planets.xmlи planets.xsl, просто обратившись к ним через атрибут src:

The Planets Table

.

.

.

Теперь для осуществления XSLT-преобразования мне нужно только применить, как и раньше, метод transformNodeи присвоить результаты элементу

, чтобы вывести их (листинг 10.4).
Листинг 10.4. Загрузка документов XML и XSL при помощи участков XML

The Planets Table

targetDIV.innerHTML =

sourceDocument.transformNode(stylesheet.XMLDocument);

Вот и все. Заметьте, что по умолчанию Internet Explorer 5.5 и младше использует устаревший процессор XSLT, как обсуждалось в главе 2 (если специально не установить процессор MSXML3 в режиме замены или IE 6.0, о чем также говорилось в главе 2). Если вы работаете с IE 5.5 или младше, у вас в распоряжении таблица стилей Internet Explorer прежнего образца, в которой нет правил по умолчанию и в которой вам придется использовать старое пространство имен XSL, как в этом примере (листинг 10 5).

Листинг 10.5. Таблица стилей Internet Explorer старого образца

The Planets Table



The Planets Table

Name Mass Radius Day

Как видите, при помощи JavaScript и XSLT в Internet Explorer можно сделать весьма многое. Дополнительную информацию можно подучить из руководства разработчика XSLT фирмы Microsoft, которое сейчас расположено по адресу http://msdn.microsoft.com/library/default.asp?URL=/library/psdk/xmlsdk/xslp8tlx.htm.

Пришло время рассмотреть взаимодействие XSLT с Java, начав с обращения к Java непосредственно из процессоров XSLT.

Вызов Java непосредственно из процессоров XSLT

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Стивен Холзнер читать все книги автора по порядку

Стивен Холзнер - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




XSLT отзывы


Отзывы читателей о книге XSLT, автор: Стивен Холзнер. Читайте комментарии и мнения людей о произведении.


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

Напишите свой комментарий
x