Чтение онлайн

на главную - закладки

Жанры

Технология XSLT

Валиков Алексей Н.

Шрифт:

□ 

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

□ 

@*
— выберет все атрибуты контекстного узла; полная версия этого шага выборки выглядит как
attribute::*
;

□ 

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

□ 

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

□ 

descendant-or-self::a[@href]
— выберет контекстный узел, а также все узлы-потомки контекстного узла, если они являются элементами с именем а и имеют атрибут
href
; этот шаг выборки эквивалентен шагу
descendant-or-self::a[attribute::href]
; еще короче его можно записать как
.//a[@href]
;

□ 

following::a[@href][not(@target)]
— выберет все узлы, которые следуют в порядке просмотра документа за контекстным узлом, являются элементами с именем
а
, имеют атрибут
href
, но не имеют атрибута
target
; этот шаг эквивалентен шагу
following::a[attribute::href][not(attribute::target)]
;

□ 

..
— выберет родительский узел контекстного узла; этот шаг выборки эквивалентен шагу
parent::node
;

□ 

namespace::*[contains(., 'XML')]
— выберет узлы пространств имен, которые ассоциируются с контекстным узлом, и строковое значение (URI) которых содержит подстроку
'XML'
. Этот шаг выборки эквивалентен шагу
namespace::*[contains(self::node, 'XML')]
;

□ 

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

□ 

*[not(self::para)]
— выберет все дочерние элементы контекстного узла, кроме элементов
para
;

□ 

*[para or chapter]
— выберет все дочерние элементы контекстного узла, которые имеют хотя бы один дочерний элемент
para
или
chapter
;

□ 

*[para and chapter]
— выберет все дочерние элементы контекстного узла, которые имеют хотя бы один дочерний элемент para и хотя бы один дочерний элемент
chapter
;

□ 

*[para][chapter]
— выберет все дочерние элементы контекстного узла,
которые
имеют хотя бы один дочерний элемент
para
и хотя бы один дочерний элемент
chapter
; этот шаг выборки равносилен
*[para and chapter]
, однако в общем случае это неверно;

□ 

*[* or @*]
— выберет все дочерние элементы, содержащие атрибуты или элементы;

□ 

*[not(* or @*)]
— выберет все дочерние элементы, не содержащие ни атрибутов, ни элементов;

□ 

*[@name or @href]
— выберет все дочерние элементы контекстного узла, имеющие хотя бы один из атрибутов
name
или
href
;

□ 

@*[count(.|../@href) != count(../@href)]
выберет все атрибуты контекстного узла, кроме атрибутов
href
;

□ 

[local-name != 'href']
— выберет все атрибуты контекстного узла, кроме атрибутов
href
; это выражение практически аналогично предыдущему (за тем исключением, что в этом способе не учитываются пространства имен).

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

□ 

/
— выберет корневой узел документа;

□ 

/*
— выберет элемент, находящийся в корне документа (элемент документа);

□ 

ancestor::body/a
— выберет все элементы
а
, принадлежащие всем предкам-элементам
body
контекстного узла;

□ 

/ancestor::body/a
— выберет все элементы
а
, принадлежащие всем предкам-элементам
body
корневого узла (это будет пустое множество);

□ 

//ancestor::body/a
— выберет все элементы
а
, принадлежащие всем предкам-элементам
body
корневого узла и потомков корневого узла; иными словами, путь
//ancestor::body
выбирает элементы
body
, являющиеся предками каких-либо узлов документа, шаг
a
— дочерние узлы этих элементов; это выражение равносильно выражению
//body[node]/a
;

□ 

preceding::а/@b
— выберет атрибуты
b
элементов
а
, предшествующих контекстному узлу;

□ 

/doc/chapter
— выберет элементы
chapter
, принадлежащие элементам
doc
, которые находятся в корне документа;

□ 

//doc/chapter
— выберет элементы
chapter
, которые находятся в любом элементе
doc
документа;

□ 

doc/chapter
выберет элементы
chapter
, которые находятся в дочерних элементах
doc
контекстного узла;

□ 

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

□ 

*[contains(name, 'ody')]/*[contains(name,'able')]
— выберет множество элементов, в имени которых присутствует строка
"able"
при условии, что они принадлежат дочерним элементам контекстного узла, в имени которых присутствует строка
"ody"
;

□ 

*[last]/preceding-sibling::*[2]
— выберет второй с конца дочерний элемент контекстного узла. Это выражение равносильно
*[last-2]
;

□ 

*/@*
— выберет все атрибуты всех дочерних элементов контекстного узла;

Поделиться:
Популярные книги

Титан империи

Артемов Александр Александрович
1. Титан Империи
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Титан империи

Ваше Сиятельство 11

Моури Эрли
11. Ваше Сиятельство
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
Ваше Сиятельство 11

Сердце Дракона. Том 8

Клеванский Кирилл Сергеевич
8. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
7.53
рейтинг книги
Сердце Дракона. Том 8

Хозяйка поместья, или отвергнутая жена дракона

Рэйн Мона
2. Дом для дракона
Фантастика:
фэнтези
5.00
рейтинг книги
Хозяйка поместья, или отвергнутая жена дракона

Вернуть невесту. Ловушка для попаданки 2

Ардова Алиса
2. Вернуть невесту
Любовные романы:
любовно-фантастические романы
7.88
рейтинг книги
Вернуть невесту. Ловушка для попаданки 2

Идеальный мир для Лекаря 3

Сапфир Олег
3. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 3

Правильный попаданец

Дашко Дмитрий Николаевич
1. Мент
Фантастика:
альтернативная история
5.75
рейтинг книги
Правильный попаданец

Барин-Шабарин 2

Гуров Валерий Александрович
2. Барин-Шабарин
Фантастика:
попаданцы
альтернативная история
фэнтези
5.00
рейтинг книги
Барин-Шабарин 2

Развод с генералом драконов

Солт Елена
Фантастика:
фэнтези
5.00
рейтинг книги
Развод с генералом драконов

Не грози Дубровскому!

Панарин Антон
1. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому!

Инквизитор Тьмы 4

Шмаков Алексей Семенович
4. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы 4

Пятьдесят оттенков серого

Джеймс Эрика Леонард
1. Пятьдесят оттенков
Проза:
современная проза
8.28
рейтинг книги
Пятьдесят оттенков серого

Кротовский, сколько можно?

Парсиев Дмитрий
5. РОС: Изнанка Империи
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Кротовский, сколько можно?

Завод-3: назад в СССР

Гуров Валерий Александрович
3. Завод
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Завод-3: назад в СССР