Сергей Пузанков — XPath

34
ШРИ 2012 Сергей Пузанков XPath

description

 

Transcript of Сергей Пузанков — XPath

Page 1: Сергей Пузанков — XPath

ШРИ 2012

Сергей Пузанков

XPath

Page 2: Сергей Пузанков — XPath

• Выборка нужных нод.

• Вычисление выражений.

Результат – node-set, string, number, boolean.

2

XPath

Page 3: Сергей Пузанков — XPath

3

XPath

Page 4: Сергей Пузанков — XPath

4

XPath

Page 5: Сергей Пузанков — XPath

5

Контекст

Page 6: Сергей Пузанков — XPath

• *• comment()• text()• processing-instructions()• node()

6

Выбор нод без указания имени

Page 7: Сергей Пузанков — XPath

7

Атрибуты и родители

ПОИГРАЙ ШРИФТАМИ

Page 8: Сергей Пузанков — XPath

8

Axis / Оси http://www.xmlplease.com/axis

books/book/authorbooks/child::book/child::author

Page 9: Сергей Пузанков — XPath

9

self::

self::node().

Page 10: Сергей Пузанков — XPath

books/book/authorbooks/child::book/child::author

10

child::

Page 11: Сергей Пузанков — XPath

11

descendant::

block/descendant::itemblock//item

Page 12: Сергей Пузанков — XPath

12

descendant-or-self::

Page 13: Сергей Пузанков — XPath

13

parent::

books/../newspapers

Page 14: Сергей Пузанков — XPath

14

ancestor::

Page 15: Сергей Пузанков — XPath

15

ancestor-or-self::

Page 16: Сергей Пузанков — XPath

16

preceding-sibling::

Page 17: Сергей Пузанков — XPath

17

following-sibling::

Page 18: Сергей Пузанков — XPath

18

preceding::

Page 19: Сергей Пузанков — XPath

19

following::

Page 20: Сергей Пузанков — XPath

20

Текстовые ноды и строковые значения нод

Page 21: Сергей Пузанков — XPath

/page/a | /page/b => и нода a и нода b.

21

Объединение через |

Расширенное понятие контекстаКонтекст состоит из:

• Длины коллекции• Позиции данного элемента• Собственно контекстной ноды

Page 22: Сергей Пузанков — XPath

22

Приведение типов

2 + 2'hello'2 > 3

• string• number• boolean• node-set

Page 23: Сергей Пузанков — XPath

boolean(/items/item)boolean(2 + 2)boolean('hello')

23

Приведение типов

• Пустой нодесет дает false, не пустой --- true.• Пустая строка дает false, не пустая --- true.• Число 0 и NaN дает false, остальное true.

Page 24: Сергей Пузанков — XPath

• /items/item[position() = 1]

• /items/item[1]

• /items/item[position() = -1]

• /items/item[position() = last()]

• /items/item[position() <= 5]

• /items/item[position() mod 2 = 0]

24

Предикаты

Page 25: Сергей Пузанков — XPath

25

Page 26: Сергей Пузанков — XPath

26

Page 27: Сергей Пузанков — XPath

27

Смотри не перепутай

Page 28: Сергей Пузанков — XPath

28

Предикаты

Page 29: Сергей Пузанков — XPath

29

Сравнение нодесетов

Page 30: Сергей Пузанков — XPath

30

Сравнение нодесетов

Page 31: Сергей Пузанков — XPath

31

Сравнение нодесетов в предикатах

Page 32: Сергей Пузанков — XPath

32

Page 33: Сергей Пузанков — XPath

http://www.w3.org/TR/xml/http://www.w3.org/TR/xpath/http://www.w3.org/TR/xslt/http://www.w3.org/XML/Schemahttp://ru.wikipedia.org/wiki/DTD

33

Почитать

Page 34: Сергей Пузанков — XPath

Руководитель группы разработки поисковых интерфейсов

[email protected]

@puzankovcom

Сергей Пузанков