Публикация

XPath

Что такое XPath?

XPath - это синтаксисдля адресации частей XML-документа

XPath - использует пути для адресации элементов XML

XPath - является важнейшей частью стандарта XSLT

XPath - не является XML-форматом

XPath - является стандартом W3C

 

XPath - использует адресные выражения для идентификации узлов в XML-документе. Эти адресные выражения очень похожи на выражения, с которыми вы сталкиваетесь при работе с файловой системой компьютера:

w3schools/xpath/default.asp

 Пример XPath

Empire Burlesque Bob Dylan USA Columbia 10.90 1985 Hide your heart Bonnie Tyler UK CBS Records 9.90 1988 /year>

Это выражение XPath:

catalog/cd/price

определяет элементы price, дочерние относительно элементов cd, подэлементов элемента catalog

Пути адресации XPath

Выражения для Путей Адресации

Имя

Описание

Пример

Результат

/

Дочерний элемент узла

/price

элемент price

//

Узел и его дочерние элементы

//cd

элемент cd и его подэлементы

|

список дочерних элементов

price | title

элемент price и title

Оси

Оси служат для определения набора узлов относительно данного узла.

Имя

Описание

Узел

self

сам узел

 

child

Дочерние узлы

 

parent

Родительский узел

 

descendant

Потомки узла

 

descendant-or-self

Узел и его потомки

 

ancestor

Предки узла

 

ancestor-or-self

Сам узел и его предки

 

following

Все узлы после данного

 

following-sibling

Все узлы этого же уровня после данного

 

preceding

Все узлы перед данным

 

preceding-sibling

Все узлы этого же уровня перед данным

 

attribute

Узлы аттрибутов

 

namespace

Узлы пространства имен

 

 

Предикаты Путей Адресации

Предикаты - это выражения, использующиеся для построения конкретных подмножеств узлов на основе данного.

Предикаты записываются внутри квадратных скобок.

Например, child::price[price=9.90] возвращает множество узлов, где элемент price имеет значение 9.90.

Новое множество узлов содержит все узлы, для которых значение предиката верно.

Сокращения для Путей Адресации

При описании путей адресации могут использоваться сокращения.

Сокращение

Значение

 

child::

@

attribute::

.

self::

..

parent::

//

/descendant-or-self/

число

[position()='значение']

Выражения XPath

Числовые Выражения

Числовые выражения используются для выполнения арифметических операций над числами.

Оператор

Описание

Пример

Результат

+

Сложение

6 + 4

10

-

Вычитание

6 - 4

2

*

Умножение

6 * 4

24

div

Деление

8 div 4

2

mod

Остаток от деления

5 mod 2

1

Замечание: XPath всегда преобразует аргумент в число перед выполнением арифметических операций.

Операции равенства

Операции равенства используются для проверки равенства двух значений.

Оператор

Описание

Пример

Результат

=

Равно

price=9.80

'истина' (если значение price равно 9.80)

!=

Не равно

price!=9.80

'ложь'

 

Проверка по Множеству Узлов

В случае, когда тестовое значение проверяется на равенство по множеству узлов, результатом будет 'истина', если множество узлов содержит какой-либо узел со значением, которое соответствует тестовому значению.

Когда тестовое значение проверяется на неравенство по множеству узлов, результатом будет 'истина', если множество узлов содержит хотя бы один узел со значением, отличным от тестового.

В итоге множество узлов может быть равно и не равно одновременно!!!

Операции Сравнения

Эти операции используются для сравнения двух значений.

Оператор

Описание

Пример

Результат

 

Меньше

price9.80

'ложь' (если price равно 9.80)

=

Меньше или равно

price=9.80

'истина'

Больше

price>9.80

'ложь'

>=

Меньше или равно

price>=9.80

'истина'

Замечание: XPath всегда преобразует каждый аргумент в число перед выполнением сравнения.

Булевы Выражения

Оператор

Описание

Пример

Результат

or

или

price=9.80 or price=9.70

'истина' (если price равно 9.80)

and

и

price=9.80 and price=9.70

 

 

Функции XPath

Библиотека Функций XPath

Библиотека функций XPath включает набор базовых функций для преобразования данных.

Числовые Функции

Имя

Описание

Пример

Результат

round

Округляет до ближайшего целого.

round(3.14)

3

ceiling

Округляет до ближайшего целого, которое больше данного.

ceiling(3.14)

4

floor

Округляет до ближайшего целого, которое меньше данного.

floor(3.14)

3

count

Возвращает количество узлов.

count(nodeset)

количество узлов в множестве узлов

number

Преобразует аргумент в число.

number(price)

Численное значение элемента price

sum

Возвращает сумму списка чисел.

sum(/cd/price)

Суммарная цена всех CD

 

Строковые Функции

Имя

Описание

Пример

Результат

string

Преобразует аргумент в строку.

string(3.14)

'3,14'

string-length

Возвращает длину строки.

string-lenght('Beatles')

7

substring

Возвращает подстроку.

substring('Beatles',1,4)

'Beat'

substring-after

Возвращает остаток строки после второго аргумента.

substring-after('12:30',':')

'30'

substring-before

Возвращает часть строки перед вторым аргументом.

substring-before('12:30',':')

'12'

contains

Возвращает 'истину', если первая строка содержит вторую.

contains('XML','X')

'истина'

starts-with

Возвращает 'истину', если первая строка начинается второй.

starts-with('XML','X')

'истина'

concat

Возвращает конкатенацию двух строк.

concat('The',' ','Beatles')

'The Beatles'

normalize-space

Удаляет лишние пробелы в строке.

normalize-space('  The    Beatles')

'The Beatles'

translate

Заменяет символы в строке.

translate('12:30',':','.')

'12.30'

 

Булевы Функции

Имя

Описание

Пример

Результат

boolean

Преобразует аргумент к булевому типу.

boolean(3.14)

'истина', если price не равен нулю

false

Вовращает 'ложь'.

number(false())

0

true

Возвращает 'истину'.

number(true())

1

not

Возвращает отрицание.

not(false())

'истина'

Источник: www.w3schools.com/XPath/default.asp

Нравится

Поделиться

0 комментариев
Показать все комментарии