Книга: Технология 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())]
— соответствует любому узлу, кроме текстового узла, узла атрибута и узла пространства имен.
- Примеры получения статистики
- Примеры
- 4.11.2. Примеры добавления ipchains-правил
- 4.11.3. Примеры удаления ipchains-правил
- 4.12.3. Примеры конфигурирования iptables
- Примеры концептуальных положений и целей проекта
- Примеры творческих промоакций
- Таблица 14.1. Примеры имен файлов в результате задания правил форматирования
- Приложение I. Примеры сценариев
- Примеры администраторов ресурсов
- Примеры метапоисковых машин Интернета
- Еще примеры необычной гарантии