XSLT | страница 75
>MASS
" и применения шаблонов, таких как ">/
", ">/PLANETS
" и т.д., вплотную познакомиться с созданием образцов выбора не так-то просто — этому посвящена вся глава 4.Образцы выбора (match pattern) являются подмножеством полного языка XPath, их можно использовать в элементах >
>
и >
. В частности, в образец можно установить атрибут match у >
и >
, и атрибуты >count
и >from
элемента >
. В следующем списке приведен ряд примеров образцов выбора, много других примеров будет показано в главе 4 при подробном обсуждении использования XPath для выбора узлов и атрибутов:
• ">/
" выбирает корневой узел;
• ">*
" выбирает элементы узлов (но не всех узлов, как зачастую ошибочно полагают);
• ">PLANET
" выбирает элементы >
;
• ">PLANET/MASS
" выбирает все элементы >
, дочерние для элемента >
;
• ">//PLANET
" выбирает все элементы >
, производные от корневого узла;
• ">.
" выбирает текущий узел (технически это не образец выбора, а выражение XPath, как мы увидим в главе 7).
Образцы можно также использовать в атрибуте >select
элементов >
, >
, >
, >
и >
; фактически атрибут >select
этих элементов может содержать полные выражения XPath, а не только образцы выбора. Атрибут >select
элемента >
определяет дочерний узел, значение которого нужно получить:
>
>
>
>
>
>
>
>
Теперь пора воспользоваться атрибутом >select
элемента >
, поскольку это даст нам возможность указать, какой шаблон использовать и когда.
Выбор применяемого шаблона
Вплоть до нынешнего момента я использовал только версию элемента >
по умолчанию, как, например:
>
>
>
Name >
Mass >
Radius >
Day >
>
>
Простое использование только >
указывает процессору XSLT осуществлять поиск всех шаблонов, выбирающих дочерние узлы контекстного узла, — это использование по умолчанию. Однако иногда это не лучший вариант, поскольку может потребоваться применять шаблоны в определенном порядке или иным образом выбрать применяемые шаблоны (последнее можно сделать при помощи атрибута