XSLT | страница 57



следующий:

>

Mercury

Venus

Earth

>

АТРИБУТ 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">

> 

>  

>   

>    </b></code></p><p><code>><b>     The Planets Table</b></code></p><p><code>><b>    

>   

>   

>    

>     The Planets Table

>    

>   

>     

>     

>      

>      

>      

>     

>    

>   

NameMassRadiusDay

>   

>  

> 

> .

> .

> .

Каждый дочерний узел > имеет дочерние узлы >, >, > и >, и я хочу обрабатывать их именно в таком порядке — для того чтобы они добавлялись в HTML-таблицу в соответствии с заголовками таблицы. Для задания порядка их обработки я поместил элементы > (листинг 2.5).

Листинг 2.5. planets.xsl

>

>

> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">