Книга: Технология XSLT

Примеры паттернов

Примеры паттернов

body — соответствует элементам body с нулевым пространством имен;

xhtml:body — соответствует элементам body, принадлежащим пространству имен с префиксом xhtml;

body/a — соответствует дочерним элементам а элемента body;

* — соответствует любому элементу, который принадлежит нулевому пространству имен;

а[1] — соответствует каждому первому элементу а своего родительского узла; элемент будет соответствовать этому паттерну, если ему не предшествует никакой братский элемент a — то есть из всех дочерних элементов а некоторого узла этому паттерну будет соответствовать только первый в порядке просмотра документа элемент;

a[position() mod 2 = 0] — соответствует каждому четному элементу a своего родительского узла; иначе говоря, из всех элементов а некоторого узла этому паттерну будут соответствовать только четные;

/ — соответствует корневому узлу;

/html — узел будет соответствовать этому паттерну тогда и только тогда, когда он является элементом с именем html и нулевым пространством имен и находится при этом в корне элемента;

//html — соответствует любому элементу html документа, принадлежащему нулевому пространству имен; этот паттерн равносилен паттерну html;

*[starts-with(local-name(), 'A') or starts-with(local-name(), 'a')] — соответствует любому элементу, имя которого начинается на букву "а" в любом регистре символов;

*[string-length(local-name())=2] — соответствует любому элементу, локальная часть имени которого состоит из двух символов;

*[starts-with(namespace-uri(),'http') or starts-with(namespace-uri(), 'HTTP')] — соответствует любому элементу, URI пространства имен которого начинается на "http" или "HTTP";

br[not(*)] — соответствует элементу br, который не имеет дочерних элементов;

id('i') — соответствует элементу, уникальный атрибут которого (атрибут, имеющий тип ID) равен "i";

id('i')/@id — соответствует атрибуту id элемента, уникальный атрибут которого равен "i"; заметим, что уникальный атрибут элемента вовсе не обязательно должен иметь имя id;

key('name', 'html')/@href — соответствует атрибуту href узла, значение ключа с именем "name" которого равно "html";

*|@* — соответствует любому элементу или атрибуту;

a|b|с — соответствует элементам а, b и с;

node() — соответствует любому узлу, кроме узла атрибута и пространства имен (поскольку они не являются дочерними узлами своих родителей);

node() | attribute::* | namespace::* — соответствует любому узлу, включая узлы атрибутов и пространств имен;

node()[not(self::text())] — соответствует любому узлу, кроме текстового узла, узла атрибута и узла пространства имен.

Оглавление книги


Генерация: 1.168. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз