Чтение онлайн

на главную - закладки

Жанры

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

Шрифт:

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);

}

</SCRIPT>

 </HEAD>

 <BODY ONLOAD="initialize">

<CENTER>

<DIV ID="targetDIV"></DIV>

<BR>

<BR>

<INPUT TYPE="BUTTON" ONCLICK="sort('NAME')" VALUE="Sort by name"></INPUT>

<INPUT TYPE="BUTTON" ONCLICK="sort('MASS')" VALUE="Sort by mass"></INPUT>

<INPUT TYPE="BUTTON" ONCLICK="sort('RADIUS')" VALUE="Sort by radius"></INPUT>

<INPUT TYPE="BUTTON" ONCLICK="sort('DAY')" VALUE="Sort by day"></INPUT>

</CENTER>

 </BODY>

</HTML>

На

самом деле загрузить документы 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');

.

.

.

<OBJECT ID="XMLdoc" WIDTH="0" HEIGHT="0"

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

</OBJECT>

<OBJECT ID="XSLdoc" WIDTH="0" HEIGHT="0"

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

</OBJECT>

Эта техника не так надежна, как использование класса

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

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

В Internet Explorer есть специальный тег

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

Участки XML упрощают загрузку документов XML и XSL, поэтому их стоит здесь рассмотреть. В следующем примере я создаю два участка XML,

sourceDocument
и
stylesheet
, и загружаю
planets.xml
и
planets.xsl
, просто обратившись к ним через атрибут
src
:

<HTML>

 <HEAD>

<TITLE>

The Planets Table

</TITLE>

<XML id="sourceDocument" src="planets.xml"></XML>

<XML id="stylesheet" src="planets.xsl"></XML>

.

.

.

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

transformNode
и присвоить результаты элементу
<DIV>
, чтобы вывести их (листинг 10.4).

Листинг 10.4. Загрузка документов XML и XSL при помощи участков XML

<HTML>

 <HEAD>

<TITLE>

The Planets Table

</TITLE>

<XML id="sourceDocument" src="planets.xml"></XML>

<XML id="stylesheet" src="planets.xsl"></XML>

<SCRIPT FOR="window" EVENT="onload">

targetDIV.innerHTML =

sourceDocument.transformNode(stylesheet.XMLDocument);

</SCRIPT>

 </HEAD>

 <BODY>

<CENTER>

<DIV id="targetDIV"></DIV>

</CENTER>

 </BODY>

</HTML>

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

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

<?xml version="1.0"?>

<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/TR/WD-xsl">

 <xsl:template match="/">

<HTML>

<HEAD>

<TITLE>

The Planets Table

</TITLE>

</HEAD>

Поделиться:
Популярные книги

Неудержимый. Книга VIII

Боярский Андрей
8. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
6.00
рейтинг книги
Неудержимый. Книга VIII

Законы Рода. Том 6

Flow Ascold
6. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Законы Рода. Том 6

Восход. Солнцев. Книга I

Скабер Артемий
1. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восход. Солнцев. Книга I

Попаданка

Ахминеева Нина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Попаданка

Возлюби болезнь свою

Синельников Валерий Владимирович
Научно-образовательная:
психология
7.71
рейтинг книги
Возлюби болезнь свою

Кодекс Крови. Книга III

Борзых М.
3. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга III

Ротмистр Гордеев 2

Дашко Дмитрий
2. Ротмистр Гордеев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Ротмистр Гордеев 2

Идеальный мир для Лекаря 5

Сапфир Олег
5. Лекарь
Фантастика:
фэнтези
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 5

Адвокат Империи 3

Карелин Сергей Витальевич
3. Адвокат империи
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Адвокат Империи 3

Жребий некроманта 3

Решетов Евгений Валерьевич
3. Жребий некроманта
Фантастика:
боевая фантастика
5.56
рейтинг книги
Жребий некроманта 3

Город драконов

Звездная Елена
1. Город драконов
Фантастика:
фэнтези
6.80
рейтинг книги
Город драконов

Убивать, чтобы жить

Бор Жорж
1. УЧЖ
Фантастика:
героическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Убивать, чтобы жить

Инквизитор Тьмы 2

Шмаков Алексей Семенович
2. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы 2

Беглец

Бубела Олег Николаевич
1. Совсем не герой
Фантастика:
фэнтези
попаданцы
8.94
рейтинг книги
Беглец