XSLT | страница 75



" можно представить в виде ">MASS" и применения шаблонов, таких как ">/", ">/PLANETS" и т.д., вплотную познакомиться с созданием образцов выбора не так-то просто — этому посвящена вся глава 4.

Образцы выбора (match pattern) являются подмножеством полного языка XPath, их можно использовать в элементах >>, > и >. В частности, в образец можно установить атрибут match у > и >, и атрибуты >count и >from элемента >. В следующем списке приведен ряд примеров образцов выбора, много других примеров будет показано в главе 4 при подробном обсуждении использования XPath для выбора узлов и атрибутов:

• ">/" выбирает корневой узел;

• ">*" выбирает элементы узлов (но не всех узлов, как зачастую ошибочно полагают);

• ">PLANET" выбирает элементы >;

• ">PLANET/MASS" выбирает все элементы >, дочерние для элемента >;

• ">//PLANET" выбирает все элементы >, производные от корневого узла;

• ">." выбирает текущий узел (технически это не образец выбора, а выражение XPath, как мы увидим в главе 7).

Образцы можно также использовать в атрибуте >select элементов >, >, >, > и >; фактически атрибут >select этих элементов может содержать полные выражения XPath, а не только образцы выбора. Атрибут >select элемента > определяет дочерний узел, значение которого нужно получить:

>

> 

> 

>  

>  

>  

> 

>

Теперь пора воспользоваться атрибутом >select элемента >, поскольку это даст нам возможность указать, какой шаблон использовать и когда.

Выбор применяемого шаблона

Вплоть до нынешнего момента я использовал только версию элемента > по умолчанию, как, например:

>

>  

>  

>

NameMassRadiusDay

Простое использование только > указывает процессору XSLT осуществлять поиск всех шаблонов, выбирающих дочерние узлы контекстного узла, — это использование по умолчанию. Однако иногда это не лучший вариант, поскольку может потребоваться применять шаблоны в определенном порядке или иным образом выбрать применяемые шаблоны (последнее можно сделать при помощи атрибута