Технология XSLT
Шрифт:
□
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]
— выберет дочерний элемент а
, позиция которого равна значению переменной i
; □
parent::*['root']
— выберет родительский узел контекстного узла, если он является элементом; если он является корнем документа, этот шаг выборки не выберет ничего; предикат ['root']
не имеет никакого действия, поскольку строка 'root'
как непустая строка тождественно преобразуется в истину; □
preceding-sibling::*[attribute::*]
— выберет все братские узлы контекстного узла, которые предшествуют ему, являются элементами и содержат, по крайней мере, один атрибут; □
preceding-sibling:p[1]
— выберет ближайший (первый в обратном порядке просмотра) элемент p, который предшествует контекстному узлу; □
following::а[attribute::href][not(descendant::img)]
— выберет все узлы, которые следуют за контекстным в порядке просмотра документа, являются элементами с именем а
, имеют атрибут href
, но не имеют элементов-потомков с именем img
; □
ancestor::node[2]
— выберет второго предка (то есть "деда") контекстного узла; □
descendant-or-self::a[attribute::href]
— выберет контекстный узел, а также все узлы-потомки контекстного узла, если они являются элементами с именем а
и имеют атрибут href
; □
namespace::*[contains(self::node, 'XML')]
— выберет узлы пространств имен, которые ассоциируются с контекстным узлом, и строковое значение (URI) которых содержит подстроку 'XML'
. Использование сокращенного синтаксиса в шагах выборки:
Поделиться:
Популярные книги
Бастард
1. Последняя жизнь
Фантастика:
фэнтези
героическая фантастика
попаданцы
5.86
рейтинг книги
Последний наследник
11. Десять Принцев Российской Империи
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Мастер темных арканов 2
2. Мастер темных арканов
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XIII
13. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Босс для Несмеяны
11. Семеро боссов корпорации SEVEN
Любовные романы:
современные любовные романы
5.00
рейтинг книги
В погоне за женой, или Как укротить попаданку
Фантастика:
фэнтези
6.62
рейтинг книги
Купеческая дочь замуж не желает
Фантастика:
фэнтези
6.89
рейтинг книги
По дороге на Оюту
Фантастика:
космическая фантастика
8.67
рейтинг книги
Кодекс Охотника. Книга XVII
17. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бастард
1. Династия
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Неправильный боец РККА Забабашкин 3
3. Неправильный солдат Забабашкин
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Измена. (Не)любимая жена олигарха
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Попаданка для Дракона, или Жена любой ценой
Любовные романы:
любовно-фантастические романы
7.17
рейтинг книги
Прорвемся, опера! Книга 2
2. Опер
Фантастика:
попаданцы
альтернативная история
5.00