контекстный узел;

□ html/body — выберет элементы body, принадлежащие дочерним элементам html контекстного узла.

Примеры путей выборки

Простые шаги выборки:

□ child::* — выберет все дочерние элементы контекстного узла;

□ child::comment() — выберет все узлы комментариев контекстного узла;

□ child::node() — выберет все дочерние узлы контекстного узла вне зависимости от их типа;

□ child::query — выберет все дочерние элементы контекстного узла, имеющие имя query;

□ child::xsql:* — выберет все дочерние элементы, которые находятся в пространстве имен, определяемом префиксом xsql;

□ child::xsql:query — выберет все дочерние элементы query, которые находятся в пространстве имен, определяемом префиксом xsql;

□ attribute::* — выберет все атрибуты контекстного узла;

□ attribute::href — выберет атрибут href контекстного узла, если он существует;

□ parent::* — выберет родительский узел контекстного узла, если тот является элементом, и пустое множество, если родительский узел имеет другой тип, например является корнем дерева;

□ parent::node() — выберет родительский узел контекстного узла вне зависимости от его типа. Единственный случай, когда этот шаг выберет пустое множество — это когда контекстный узел является корневым узлом документа;

□ parent::xsl:template — выберет родительский узел, если тот является элементом с именем template и имеет пространство имен с префиксом xsl, иначе выберет пустое множество;

□ self::* — выберет контекстный узел, если он является элементом и пустое множество узлов, если контекстный узел имеет другой тип;

□ self:* — выберет все дочерние элементы контекстного узла, принадлежащие пространству имен с префиксом self;

□ self::text() — выберет контекстный узел, если он является текстовым узлом;

□ self::node() — выберет контекстный узел вне зависимости от его типа;

□ self::query — выберет контекстный узел, если он является элементом с именем query, и пустое множество, если контекстный узел имеет другое имя или не является элементом;

□ preceding::para — выберет все элементы para, которые предшествуют контекстному узлу в порядке просмотра документа;

□ preceding::comment() — выберет все узлы комментариев, которые предшествуют контекстному узлу в порядке просмотра документа;

□ preceding-sibling::* — выберет все братские (принадлежащие тому же родителю) элементы контекстного узла, которые предшествуют ему в порядке просмотра документа;

□ following::processing-instruction('fop') — выберет все узлы инструкций по обработке, которые имеют имя (целевое приложение) 'fop' и следуют за контекстным узлом в порядке просмотра документа;

□ following-sibling::text() — выберет все текстовые узлы, которые являются братьями контекстного узла и следуют за ним в порядке просмотра документа;

□ descendant::* — выберет все элементы-потомки контекстного узла;

□ descendant::node() — выберет все узлы-потомки контекстного узла;

□ descendant::b — выберет все элементы b, являющиеся потомками контекстного узла;

□ descendant-or-self::* — выберет все элементы-потомки контекстного узла, а также сам контекстный узел, если он также является элементом;

□ ancestor::* — выберет все элементы, которые являются предками контекстного узла; выбранное множество не будет включать корневой узел, поскольку он не является элементом;

□ ancestor::node() — выберет все узлы, являющиеся предками контекстного узла; выбранное множество будет включать корневой узел (за исключением того случая, когда контекстный узел сам является корневым);

□ ancestor::p — выберет все элементы p, являющиеся предками контекстного узла;

□ ancestor-or-self::node() — выберет контекстный узел, а также все узлы, являющиеся его предками. Выбранное этим шагом множество будет всегда включать корневой узел;

□ ancestor-or-self::body — выберет все элементы body, которые являются предками контекстного узла, а также сам контекстный узел, если он является элементом body;

□ namespace::* — выберет все узлы пространств имен, ассоциированные с контекстным узлом; это множество будет, как минимум, содержать узел пространства имен xml;

□ namespace::xyz — выберет узел пространства имен, определяемого префиксом xyz; поскольку один префикс может соответствовать только одному пространству, возвращаемое множество будет содержать не более одного узла.

Шаги выборки с предикатами:

□ child::*[1] — выберет первый дочерний элемент контекстного узла; этот шаг выборки равносилен child::*[position()=1];

□ child::p[1] — выберет первый дочерний элемент p контекстного узла; этот шаг выборки равносилен child::p[position()=1];

□ child::*[last()] — выберет последний дочерний узел контекстного узла; этот шаг выборки равносилен child::*[position()=last()];

□ child::*[last()-1] — выберет предпоследний дочерний узел контекстного узла; этот шаг выборки равносилен шагу child::*[position()=last()]. Если контекстный узел имеет только один дочерний элемент, выбираемое множество будет пустым;

□ child::p[position() mod 2 = 0] — выберет все четные элементы p;

□ child::p[position() mod 2 = 1] — выберет все нечетные элементы p;

□ child::а[2][attribute::name='b'] — Выберет второй дочерний элемент а контекстного узла, если он имеет атрибут name со значением 'b';

□ child::a[attribute::name='b'][2] — выберет второй дочерний элемент а контекстного узла из тех, которые имеют атрибут name со значением 'b'; этот шаг выборки отличается от шага выборки в предыдущем примере — порядок следования предикатов имеет значение;

□ child::a[position()=$i] — выберет дочерний элемент а,

Вы читаете Технология XSLT
Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату