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

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

Жанры

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

Шрифт:

</BODY>

</HTML>

 </xsl:template>

 <xsl:attribute-set name="attribs">

<xsl:attribute name="type">BUTTON</xsl:attribute>

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

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

 </xsl:attribute-set>

</xsl:stylesheet>

Результат, включая элемент

<SCRIPT>
для нового кода JavaScript (листинг 6.2).

Листинг 6.2. Результирующий документ с JavaScript

<HTML>

 <HEAD>

<TITLE>

The Mass Page

</TITLE>

<SCRIPT LANGUAGE="javascript">

function Mercury {

display.innerHTML = 

'The mass of Mercury equals .0553 Earth masses.'

}

function Venus {

display.innerHTML = 'The mass of Venus equals .815 Earth masses.'

}

function Earth {

display.innerHTML = 'The mass of Earth equals 1 Earth masses.'

}

</SCRIPT>

 </HEAD>

 <BODY>

<CENTER>

<H1>The Mass Page</H1>

</CENTER>

<input type="BUTTON" value="Mercury" onclick="Mercury">

<input type="BUTTON" value="Venus" onclick="Venus">

<input type="BUTTON" value="Earth" onclick="Earth">

<DIV ID="display"></DIV>

 </BODY>

</HTML>

Как видите, при помощи XSLT я написал код JavaScript для прохода в цикле по планетам. Этот документ HTML показан на рис. 6.1. При щелчке на кнопку выводится масса соответствующей планеты.

Рис. 6.1. Преобразование XML в HTML при помощи JavaScript 

Метод вывода: XML

Формально при использовании метода вывода XML процессор XSLT создает хорошо сформированный внешний объект XML, который можно разобрать на общих условиях. Если корневой узел результирующего дерева имеет единственный дочерний узел-элемент и не имеет текстовых дочерних узлов. Тогда объект будет также хорошо сформированным документом XML.

При использовании метода вывода XML атрибут

version
устанавливает версию XML результата. Заметьте, что если процессор XSLT не поддерживает эту версию XML, он будет использовать ту версию XML, которую поддерживает. По умолчанию установлено значение 1.0.

Атрибут

encoding
устанавливает кодировку для результирующего документа. Процессоры XSLT должны поддерживать, по крайней мере, значения «UTF-8» и «UTF-16». Если процессор XSLT работает с другими значениями и не поддерживает указанную кодировку, он может сгенерировать ошибку. Если он этого не сделает, процессор должен использовать вместо нее UTF-8 иди UTF-16. Процессор XSLT не должен использовать кодировку, которая не была принята консорциумом W3C (см. www.ww3.org/TR/REC-xml). Если никакой атрибут кодировки не указан, по умолчанию процессор XSLT должен выбрать «UTF-8» или «UTF-16».

ОБРАБОТКА НЕИЗВЕСТНЫХ СИМВОЛОВ

Если результирующий документ содержит символ, который не может быть представлен в кодировке, используемой процессором XSLT для вывода, символ допустимо вывести как ссылку на символ. Если это невозможно, процессор XSLT должен сгенерировать ошибку. 

Как и в случае с методом вывода HTML, если атрибут

indent
установлен в «yes», метод вывода XML может добавить или удалить символы-разделители в результирующее дерево для того, чтобы выровнять результат. Значение по умолчанию — no. Заметьте, что если символы-разделители отбрасываются, информационное множество результирующего XML-документа должно быть таким же, как если бы символы-разделители вообще не добавлялись и не удалялись для выравнивания документа.

ВЫРАВНИВАНИЕ ДОКУМЕНТОВ СО СМЕШАННЫМ СОДЕРЖИМЫМ

Для документов со смешанным содержимым лучше не устанавливать атрибут indent в «yes», поскольку это вносит путаницу в работу процессора XSLT. 

При помощи атрибута

cdata-section-elements
можно задать разделенный символами-разделителями список имен элементов, чье содержимое должно трактоваться как разделы
CDATA
. Например, если установить атрибут
cdata-section-elements
в «
DATA
»:

<xsl:output cdata-section-elements="DATA"/>

то следующий элемент буквального результата:

<DATA>&lt:DOCUMENT></DATA>

будет преобразован в:

<DATA><![CDATA<[DOCUMENT>]]></DATA>

Кроме того, метод вывода XML будет выводить в результирующий документ объявление XML, если только атрибут

omit-xml-declaration
не будет установлен в
yes
. Как правило, объявление XML, помещаемое в результирующий документ, обычно включает версию XML (что обязательно) и информацию о кодировке (хотя формально информация о кодировке в документах XML не обязательна). Если задан атрибут
standalone
, результирующий документ должен включать объявление отдельного документа с тем же значением, что и значение у атрибута
standalone
.

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

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

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

Травница Его Драконейшества

Рель Кейлет
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Травница Его Драконейшества

Второгодка. Книга 3. Ученье свет

Ромов Дмитрий
3. Второгодка
Фантастика:
городское фэнтези
сказочная фантастика
альтернативная история
5.00
рейтинг книги
Второгодка. Книга 3. Ученье свет

Французская новелла XX века. 1900–1939

Пруст Марсель
Проза:
классическая проза
6.25
рейтинг книги
Французская новелла XX века. 1900–1939

Родословная. Том 2

Ткачев Андрей Юрьевич
2. Линия крови
Фантастика:
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Родословная. Том 2

Бастард Императора. Том 9

Орлов Андрей Юрьевич
9. Бастард Императора
Фантастика:
городское фэнтези
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Бастард Императора. Том 9

Кодекс Охотника. Книга XIV

Винокуров Юрий
14. Кодекс Охотника
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XIV

Ваше Сиятельство 3

Моури Эрли
3. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ваше Сиятельство 3

Неучтенный элемент. Том 8

NikL
8. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 8

Группа крови на рукаве

Вязовский Алексей
1. ГК
Фантастика:
боевая фантастика
попаданцы
альтернативная история
6.40
рейтинг книги
Группа крови на рукаве

Целого Мира Мало

Джиллиан Алекс
Любовные романы:
современные любовные романы
8.88
рейтинг книги
Целого Мира Мало

Гранд

Демченко Антон Витальевич
3. Воздушный стрелок
Фантастика:
боевая фантастика
8.12
рейтинг книги
Гранд

Эпоха Опустошителя. Том IV

Павлов Вел
4. Вечное Ристалище
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Эпоха Опустошителя. Том IV

Ермак. Телохранитель

Валериев Игорь
2. Ермак
Фантастика:
альтернативная история
7.50
рейтинг книги
Ермак. Телохранитель