Книга: XSLT
Упрощенные таблицы стилей
Упрощенные таблицы стилей
Как можно заметить на основе рассмотренного до сих пор материала, создавать таблицы стилей XSLT не так-то просто. W3C попытался облегчить эту процедуру, разработав упрощенные таблицы стилей (simplified stylesheets), в которые не нужно — а на самом деле и невозможно — включать элемент <xsl:stylesheet>
или какие-либо еще элементы высокого уровня.
Фактически упрощенная таблица стилей представляет собой результирующий документ, содержащий несколько элементов XSL невысокого уровня. W3C называет такую таблицу «элемент буквального результата как таблица».
В листинге 2.7 я осуществлю преобразование planets.xml
в planets.html
, но теперь я сделаю это при помощи упрощенной таблицы стилей. В упрощенных таблицах стилей вы не можете применять элементы высокого уровня, такие как <xsl:template>
, позволяющие рекурсивную обработку всех элементов в исходном документе. Поэтому здесь я зайду немного вперед и воспользуюсь элементом <xsl:for-each>
(рассматриваемым в главе 5), который, не являясь элементом высокого уровня, позволяет обработать в цикле сразу несколько узлов.
Мне также нужно каким-либо образом выбрать все элементы <PLANET>
в исходном документе, и вы можете подумать, что это невозможно без использования шаблонов нескольких уровней — например, один для корневого узла, затем один для выбора на следующем уровне вниз, корневом элементе <PLANETS>
, и затем еще один уровень вниз для самих элементов <PLANET>
. Однако, используя XPath, можно при помощи выражения "//PLANET
" найти все узлы элемента <PLANET>
, производные от корневого узла (см. главу 4). Это значит, что я могу написать упрощенную таблицу стилей следующим образом.
Листинг 2.7. Упрощенная таблица стилей
<HTML xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xsl:version="1.0">
<HEAD>
<TITLE>
The Planets Table
</TITLE>
</HEAD>
<BODY>
<H1>
The Planets Table
</H1>
<TABLE BORDER="2">
<TR>
<TD>Name</TD>
<TD>Mass</TD>
<TD>Radius</TD>
<TD>Day</TD>
</TR>
<xsl:for-each select="//PLANET">
<TR>
<TD><xsl:value-of select="NAME"/></TD>
<TD><xsl:value-of select="MASS"/></TD>
<TD><xsl:value-of select="RADIUS"/></TD>
<TD><xsl:value-of select="DAY"/></TD>
</TR>
</xsl:for-each>
</TABLE>
</BODY>
</HTML>
Данная версия работает точно так же, как и предыдущая версия planets.xsl
, при этом совсем не используя элементы высокого уровня. Упрощенные таблицы стилей, такие как эта, были представлены в помощь авторам HTML при осуществлении преобразований в XSL, однако их применимость весьма ограничена. Очевидно, все равно нужно знать, как работать с элементами XSL, а отсутствие возможности использовать <xsl:template>
в данном случае только затруднило работу. Однако вы должны знать, что упрощенные таблицы стилей существуют и включены в спецификацию XSLT.
ОБРАБОТКА ПО УМОЛЧАНИЮ БЕЗ ЭЛЕМЕНТА <XSL:STYLESHEET>
Если процессор XSLT не может найти в таблице стилей элемент <xsl:stylesheet>, он трактует таблицу как упрощенную таблицу стилей.
- Деревья и узлы
- Модель информационного множества против модели дерева XSLT
- Работа с элементами XSLT
- Инструкция обработки
- Элемент
- Элементы таблиц стилей высокого уровня
- Элемент
- Тела шаблонов
- Элемент
- Доступ к значениям узлов
- Поддержка XML Base
- Выбор методов вывода
- Упрощенные таблицы стилей
- Встроенные таблицы стилей
- Элемент
- Элемент
- Элемент
- Преобразование документов XML при помощи Internet Explorer
- Глава 2 Создание и применение таблиц стилей
- Элементы таблиц стилей высокого уровня
- Использование представления в виде таблицы данных
- 4.3. Логические функции и таблицы истинности
- ГЛАВА 16. Таблицы.
- 5.1.13. Таблицы
- Использование встроенных стилей
- Создание и редактирование стилей
- Практическая работа 34. Форматирование документа с помощью стилей
- Вставка таблицы в документ
- Практическая работа 38. Создание простой таблицы
- Рисование таблицы