xsl:template match="PLANET">
Значение узла, содержащего текст, будет просто текстом, поэтому результат применения этой таблицы стилей к
planets.xml
следующий:
Mercury
Venus
Earth
НТМL>
АТРИБУТ DISABLE-OUTPUT-ESCAPING
Атрибут disable-output-escaping элемента более подробно рассмотрен в главе 3.
Предположим, нам нужно осуществить нечто более сложное — например, преобразовать данные из
planets.xml
в HTML-таблицу в новом файле planets.html
(рис. 2.1), как мы видели в главе 1. Теперь это можно сделать при помощи
.Рис. 2.1. Planets.html в Internet Explorer
Здесь важно учесть один момент. В
planets.xml
формально не задан порядок элементов
,
,
и
, однако важно, чтобы эти элементы обрабатывались в определенном порядке в соответствии с заголовками таблицы. Поэтому я буду использовать элементы
в том порядке, в котором они требуются в таблице HTML.Таким образом, чтобы создать HTML-таблицу, изображенную на рис. 2.1, я сначала ищу элемент
и затем заменяю его на HTML для создания самой HTML-таблицы. Элемент
— дочерний элемент корневого узла, и поскольку на корневой узел можно сослаться через «/», на элемент
можно сослаться непосредственно через "/PLANETS
", без необходимости предварительно применять шаблон для корневого узла. Это пример выражения XPath, большое число подобных мы также увидим в главе 4.Ниже приведен пример того, как я начал создавать HTML-таблицу путем выбора элемента
непосредственно как "/PLANETS
" — заметьте, что для применения шаблонов к любым дочерним узлам
я использовал
:
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
The Planets Table
The Planets Table
Name
Mass
Radius
Day
.
.
.
Каждый дочерний узел
имеет дочерние узлы
,
,
и
, и я хочу обрабатывать их именно в таком порядке — для того чтобы они добавлялись в HTML-таблицу в соответствии с заголовками таблицы. Для задания порядка их обработки я поместил элементы
(листинг 2.5).Листинг 2.5. planets.xsl
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
The Planets Table
The Planets Table
Name
Mass
Radius
Day
Это все, что нам нужно; вот результат:
The Planets Table
The Planets Table
Name
Mass
Radius
Day
Mercury
.0553
1516
58.65
Venus
.815
3716
116.75
Earth
1
2107
1
Это практически то, что требовалось. Если взглянуть на рис. 2.2, видно, что в этом HTML-файле не выведены значения атрибута
UNITS
, который присутствует у каждого элемента (кроме атрибута
) в planets.xml
:
Рис. 2.2. Planets.html без атрибутов в Internet Explorer
Mercury
.0553
58.65
1516