XSLT | страница 73
Внутри шаблона создайте разметку HTML, начинающую требуемую таблицу, — такая прямая вставка разметки называется элементом буквального (literal) результата. Когда процессор встречает литерал, он копирует его в результирующее дерево:
>
>
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>
>
>
>
> The Planets Table
>
>
>
>
> The Planets Table
>
>
>
>
Name >
Mass >
Radius >
Day >
>
>
>
>
> .
> .
> .
>
Однако это правило обрабатывает только элемент >
, но не его дочерние элементы >
, содержащие сами данные. В соответствии с правилами шаблона по умолчанию, элементы >
будут обрабатываться, если установить шаблон для их выбора. Это, кстати, нежелательно, поскольку я хочу вставить результат обработки элементов >
в определенное место в создаваемом файле HTML. Для этого мне потребуется применить элемент >
.
Обработка дочерних узлов
Элемент >
дает указание процессору XSLT обрабатывать все совпадающие шаблоны для дочерних узлов контекстного узла. Элемент >
дает возможность явно указать, когда следует закончить обработку дочерних узлов, а это имеет решающее значение при вставке их данных в нужное место в HTML-таблице.
Один важный момент часто вызывает затруднения: элемент >
по умолчанию применяет шаблоны только к дочерним узлам контекстного или выбранного узла или набора узлов. Это выглядит довольно безобидно, но многие люди забывают о том, что атрибуты не считаются дочерними узлами элементов и также ими не являются объявления пространств имен. Это значит, что для обработки как элементов, так и атрибутов следует осуществить еще один или два дополнительных шага, что мы увидим далее в этой главе.
В следующем примере мы поместим элемент >
туда, куда нам требуется вставить данные из элементов >
в таблицу HTML. Я также добавил новый шаблон для обработки элементов >
:
>
>
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>
>
>
>
> The Planets Table
>
>
>
>