Similar presentations:
Технология XPath
1. Технология XPath
Обзорwww.epam.com
www.epam.com
EPAM
EPAM Systems
Systems
2. XPath - XML Path Language
• XPath – язык для адресации частей XMLдокумента
• XPath – открытый стандарт спецификации
W3C
• Основное использование – применение
совместно с XSLT для выбора вершин
документа
www.epam.com
EPAM Systems
2
3. Цели и задачи, которые решает XPath
• Эффективный, компактный и логичный синтаксис дляуказания пути или местоположения вершин XML
документа
• Эффективное языковое средство для ссылок на
содержимое XML документа, не “завязанное” на язык
разметки документа
• Обеспечить стандартную библиотеку функций для работы
со строками, числами и Boolean выражениями, которые
могут использоваться при обработке XML документов
• Использовать при программировании на языке XSLT, а
также других языках или интерфейсах предназначенных
для работы с XML документами
www.epam.com
EPAM Systems
3
4. Краткое знакомство с синтаксисом языка XPath
URL фаловой системыXPath выражения
Иерархия содержит фолдеры и
файлы файловой системы
Иерархия содержит элементы и другие
вершины XML документа
На одном уровне файлы имеют
уникальные имена
Названия элементов на одном уровне
могут быть неуникальными
URL всегда определяет только
один файл
XPath выражение может
идентифицировать набор вершин,
удовлетворяющих значению выражения
шаблона. В наборе может быть как одна
вершина, так и множество
URL вычисляются относительно Выражение оценивается относительно
определенной директории –
определенной вершины – контекста
текущей директории
запроса
www.epam.com
EPAM Systems
4
5. Модель дерева XML документа – пример XML документа
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31"
catdate="2005-12-31" xmlns="http://www.epam.com/">
xmlns="http://www.epam.com/">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
5
6. Модель дерева XML документа – представление XML в виде дерева
Корень документа<?xml … ?>
<!DOCTYPE …>
<?xml-stylesheet … ?>
<catalog>
<!-- Reviewed … -->
www.epam.com
EPAM Systems
6
7. Модель дерева XML документа – представление XML в виде дерева
<books>xmlns="http://www.epam.com/"
catdate="2005-12-31"
<book>
catnum="id2345"
<title>
Jambing on the Trixles
<!-- Are we sure … -->
<author>
Randall, Tristan
<book>
catnum="id7823"
<title>
For Love of a Toothpick
<author>
Frey, Jörg
www.epam.com
EPAM Systems
7
8. Синтаксис XPath
• XPath выражения состоят из шагов (locationstep), которые отделяются символом «/»
• Объединенные шаги составляют путь
(location path)
locationstep1/locationstep2
www.epam.com
EPAM Systems
8
9. Пример - /books/book/author
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31">
catdate="2005-12-31">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
9
10. Синтаксис XPath
• Каждый шаг (отсчет идет слева направо) перемещает вдереве на уровень вниз или вверх в дереве вершин
относительно предыдущего шага
• Шаг может быть абсолютным и относительным
– Абсолютный шаг может быть только самым первым в пути
– Относительные шаги могут использоваться в любом месте пути
• Пути могут быть составными из нескольких
объединенных групп путей, разделенных
символом | (pipe).
path1 | path2
www.epam.com
EPAM Systems
10
11. Пример - /books/book/title | /books/book/author
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31">
catdate="2005-12-31">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
11
12. Синтаксис XPath – абсолютные и относительные пути
• Абсолютный путь – всегда начинается скорневой вершины документа,
обозначаемой символом «/»
• Относительный путь – начинается с ранее
установленного контекста (context node), не
содержит символа «/» в начале
www.epam.com
EPAM Systems
12
13. Синтаксис XPath – описание шага (location step)
axis::nodetest[predicate]child::price[price=9.90]
• axis – определяет «направление просмотра» от текущей
вершины (context node), в направлении вершин, указанных
в nodetest. Отделяются знаком ::
• nodetest – определяет начальный набор вершин,
которые должны быть выбраны в результате шага.
Единственная обязательная часть
• predicate – дополнительные условия для axis и
nodetest. Соответствие этому условию определяет
попадет ли вершина в результирующий набор вершин
шага
www.epam.com
EPAM Systems
13
14. Описание node-test части шага (location step)
Указывает тип вершин, или определенные вершины,над полученным набором которых возможен
дополнительный выбор
Может быть 3-х видов:
1. Указание имени вершины (Name tests)
2. Указание типа вершины (Node Type tests)
3. Указание processing-instruction("target") с
указанием цели.
www.epam.com
EPAM Systems
14
15. Описание node-test части шага – Name tests
• Здесь чаще всего используется имя нужной вершины• Ось (axis) может указывать на тип вершины:
– Не attribute:: и не namespace:: -> элемент
– attribute:: -> атрибут
– namespace:: -> пространство имен
• Указываемое имя может быть трех видов:
– QName
–*
– NCName:*
www.epam.com
EPAM Systems
15
16. Пример - /books/*/author
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31">
catdate="2005-12-31">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
16
17. Пример - /books/book/*
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31">
catdate="2005-12-31">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
17
18. Описание node-test части шага – Node Type tests
• Можно отбирать вершины по их типу– comment() – комментарии
– node() – любые вершины, кроме атрибутов
– processing-instruction() – инструкции по
обработке
– text() – текстовые вершины
• В XPath 2.0 также поддерживаются
– attribute() – атрибуты
– document-node() – любые вершины
– element() – элементы
– item() – вершины-«листья»
www.epam.com
EPAM Systems
18
19. Пример - /comment()
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31">
catdate="2005-12-31">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
19
20. Пример - //text()
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31">
catdate="2005-12-31">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
20
21. Модель дерева XML документа, используемая XPath
• XPath рассматривает XML документ как деревовзаимосвязанных ветвей и вершин, следующих типов:
–
–
–
–
–
–
Элемент
Атрибут
Инструкция обработки
Комментарий
Текстовое содержимое
Пространство имен
• Сам документ рассматривается как вершина
• Модель рассматривает помимо вершин, их взаимное
отношение друг к другу
www.epam.com
EPAM Systems
21
22. Знакомство с XPath осями (axes) и взаимоотношением вершин
Отношение между вершинами в терминологии языка XPathназывается axis (ось). Оси бывают следующие:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Parent
Child
Ancestor
Descendant
Ancestor-or-self
Descendant-or-self
Preceding
Following
Preceding-sibling
Following-sibling
Self
Attribute
Namespace
www.epam.com
Применимы
только к
элементам
EPAM Systems
22
23. Примеры применения осей
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31"
catdate="2005-12-31" xmlns="http://www.epam.com/">
xmlns="http://www.epam.com/">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
Сюда будем
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
применять оси
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
23
24. Типы XPath осей (axes) - parent
• Элемент, непосредственно содержащий данную вершину(элемент, атрибут, инструкцию по обработке, комментарий или
текстовую вершину)
• У пространства имен – элемент, где пространство имен
объявляется
• У корневого элемента – корневая вершина
• У корневой вершины отсутствует
• Аббревиатура: ..
– ../cd вместо parent::node()/cd
www.epam.com
EPAM Systems
24
25. Пример parent
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31"
catdate="2005-12-31" xmlns="http://www.epam.com/">
xmlns="http://www.epam.com/">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
25
26. Типы XPath осей (axes) - child
• Любые вершины (кроме атрибутов и пространствимен), находящиеся непосредственно ниже в иерархии
• Обычно имеет смысл только для элементов и корневой
вершины
• Ось по умолчанию
• Обычно не используется явно
– cd вместо child::cd
www.epam.com
EPAM Systems
26
27. Пример child
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31"
catdate="2005-12-31" xmlns="http://www.epam.com/">
xmlns="http://www.epam.com/">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
27
28. Типы XPath осей (axes) – ancestor
• Любые вершины, находящиеся выше виерархии (прародители)
• Включают также parent вершину
• У корневой вершины отсутствуют
• Корневая вершина – прародитель всех
остальных вершин
www.epam.com
EPAM Systems
28
29. Пример ancestor
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31"
catdate="2005-12-31" xmlns="http://www.epam.com/">
xmlns="http://www.epam.com/">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
29
30. Типы XPath осей (axes) – descendant
• Любые вершины, находящиеся ниже виерархии (потомки)
• Включают также child вершины
• Для корневой вершины потомками являются
все остальные вершины за исключением
– самой корневой вершины
– атрибутов
– пространства имен
www.epam.com
EPAM Systems
30
31. Пример descendant
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31"
catdate="2005-12-31" xmlns="http://www.epam.com/">
xmlns="http://www.epam.com/">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
31
32. Типы XPath осей (axes) - ancestor-or-self
• Все ancestor вершины (предки) и самавершина
• Для корневой вершины результатом будет
только корневая вершина
www.epam.com
EPAM Systems
32
33. Пример ancestor-or-self
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31"
catdate="2005-12-31" xmlns="http://www.epam.com/">
xmlns="http://www.epam.com/">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
33
34. Типы XPath осей (axes) – descendant-or-self
• Все descendant вершины (потомки) и самавершина
• Аббревиатура: //
– //cd вместо
/descendant-or-self::node()/cd
www.epam.com
EPAM Systems
34
35. Пример descendant-or-self
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31"
catdate="2005-12-31" xmlns="http://www.epam.com/">
xmlns="http://www.epam.com/">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
35
36. Типы XPath осей (axes) – preceding
• Любые узлы, предшествующие в XMLдокументе текущему, за исключением
предков, атрибутов и пространств имен
• Фактически, это весь документ от начала и
до текущего узла
www.epam.com
EPAM Systems
36
37. Пример preceding
<?xml version="1.0"?><!DOCTYPE books [ <!ENTITY oumlaut "&#246;"> ]>
<?xml-stylesheet type="text/xsl" href="catalog.xsl"?>
<books catdate="2005-12-31" xmlns="http://www.epam.com/">
<book catnum="id2345">
<title>Jambing on the Trixles</title>
<!-- Are we sure this guy's name is spelled right???-->
<author>Randall, Tristan</author>
</book>
<book catnum="id7823">
<title>For Love of a Toothpick</title>
<author>Frey, Jöaut;rg</author>
</book>
</books>
<!-- Reviewed by Catalog Department 2005-12-30 09:11:16 -->
www.epam.com
EPAM Systems
37
38. Типы XPath осей (axes) – following
• Любые узлы, следующие в XML документеза текущим , за исключением предков,
атрибутов и пространств имен
• Фактически, это весь документ от текущего
узла до конца
www.epam.com
EPAM Systems
38
39. Пример following
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31"
catdate="2005-12-31" xmlns="http://www.epam.com/">
xmlns="http://www.epam.com/">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
39
40. Типы XPath осей (axes) – preceding-sibling
• Узлы, предшествующие в XML документетекущему и имеющие с ним общего
родителя (parent вершину)
• Атрибуты и пространства имен не входят в
список таких узлов
www.epam.com
EPAM Systems
40
41. Пример preceding-sibling
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31"
catdate="2005-12-31" xmlns="http://www.epam.com/">
xmlns="http://www.epam.com/">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
41
42. Типы XPath осей (axes) – following-sibling
• Узлы, следующие в XML документе затекущим и имеющие с ним общего родителя
(parent вершину)
• Атрибуты и пространства имен не входят в
список таких узлов
www.epam.com
EPAM Systems
42
43. Пример following-sibling
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31"
catdate="2005-12-31" xmlns="http://www.epam.com/">
xmlns="http://www.epam.com/">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
43
44. Типы XPath осей (axes) – self
• Текущая вершина• Аббревиатура: .
– ./cd вместо self::node()/cd
www.epam.com
EPAM Systems
44
45. Пример self
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31"
catdate="2005-12-31" xmlns="http://www.epam.com/">
xmlns="http://www.epam.com/">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
45
46. Типы XPath осей (axes) – attribute
• Атрибуты текущей вершины• Ось применима только к элементам
• Аббревиатура: @
– @type вместо attribute::type
www.epam.com
EPAM Systems
46
47. Пример attribute
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31"
catdate="2005-12-31" xmlns="http://www.epam.com/">
xmlns="http://www.epam.com/">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
47
48. Типы XPath осей (axes) – namespace
• Пространства имен для данного узла• Ось применима только к элементам
• В результирующий набор попадут
пространства имен, объявленные
непосредственно в элементе и объявленные
во всех ancestor элементах
www.epam.com
EPAM Systems
48
49. Пример namespace
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31"
catdate="2005-12-31" xmlns="http://www.epam.com/">
xmlns="http://www.epam.com/">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
49
50. Описание predicate части шага (location step)
• Представляет собой фильтр для отбора из вершин,полученных после node test и прохождению по оси
[something operator somevalue]
• [ ] – квадратные скобки обязательны
• something – может быть шагом (location step)
относительно вершин, полученных после node test и
прохождению по оси; или встроенной функцией
• operator – один из булевских операторов
• somevalue – значение с которым сравнивается something
www.epam.com
EPAM Systems
50
51. Пример - /books/book[author]/title
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31">
catdate="2005-12-31">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
51
52. Пример - /books/book[author='Randall, Tristan']
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31">
catdate="2005-12-31">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
52
53. Пример - /books/book[@catnum='id2345']/author
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31">
catdate="2005-12-31">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
53
54. Пример - /books/book[1]/author
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31">
catdate="2005-12-31">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
54
55. Пример - /books/book/author[1]
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31">
catdate="2005-12-31">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
55
56. Пример - /books/book[last()]
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31">
catdate="2005-12-31">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
56
57. Пример - /books/book[@catnum='id7823'][1]
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31">
catdate="2005-12-31">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
57
58. Пример - /books/book[1][@catnum='id7823']
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31">
catdate="2005-12-31">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
58
59. Пример - /books/book[title and author]
<?xml<?xml version="1.0"?>
version="1.0"?>
<!DOCTYPE
<!DOCTYPE books
books [[ <!ENTITY
<!ENTITY oumlaut
oumlaut "&#246;">
"&#246;"> ]>
]>
<?xml-stylesheet
<?xml-stylesheet type="text/xsl"
type="text/xsl" href="catalog.xsl"?>
href="catalog.xsl"?>
<books
<books catdate="2005-12-31">
catdate="2005-12-31">
<book
<book catnum="id2345">
catnum="id2345">
<title>Jambing
<title>Jambing on
on the
the Trixles</title>
Trixles</title>
<!-<!-- Are
Are we
we sure
sure this
this guy's
guy's name
name is
is spelled
spelled right???-->
right???-->
<author>Randall,
<author>Randall, Tristan</author>
Tristan</author>
</book>
</book>
<book
<book catnum="id7823">
catnum="id7823">
<title>For
<title>For Love
Love of
of aa Toothpick</title>
Toothpick</title>
<author>Frey,
<author>Frey, Jöaut;rg</author>
Jöaut;rg</author>
</book>
</book>
</books>
</books>
<!-<!-- Reviewed
Reviewed by
by Catalog
Catalog Department
Department 2005-12-30
2005-12-30 09:11:16
09:11:16 -->
-->
www.epam.com
EPAM Systems
59
60. Некоторые полезные функции XPath
• number position() – позиция текущего элемента в коллекциивершин
• number last() – позиция последнего элемента в коллекции
вершин (размер текущего контекста)
• node-set id(value) – выбирает элемент по уникальному ID
• string name(node-set?) – полное квалифицированное имя
• string local-name(node-set?) – локальное имя
• string namespace-uri(node-set?) – URI пространства имен
• number count(node-set) - количество узлов аргумента
www.epam.com
EPAM Systems
60
61. Некоторые полезные функции XPath
• string concat(string, string, string*) –объединяет аргументы в одну строку
• boolean contains(string, string) – проверяет
вхождение второго аргумента в первый
• string normalize-space(string) - нормализует
строковое значение
• boolean starts-with(string, string) - проверяет,
является ли второй аргумент началом первого
• string string(object?) - преобразует объект в строку
www.epam.com
EPAM Systems
61
62. Некоторые полезные функции XPath
• number string-length(string) - длина строки• string substring(string, number, number?) - возвращает
подстроку (символы от второго аргумента до третьего)
• string substring-after(string, string) - возвращает
часть первого аргумента, непосредственно следующую за первым
вхождением второго аргумента
• string substring-before(string, string) - возвращает
часть первого аргумента, предшествующую первому вхождению
второго аргумента
• string translate(string, string, string) - заменяет
символы первого аргумента, совпадающие с символами второго
аргумента, на соответствующие символы третьего аргумента
www.epam.com
EPAM Systems
62
63. Некоторые полезные функции XPath
• number ceiling(number) - наименьшее целое, неменьшее аргумента
• number floor(number) - наибольшее целое, не
превышающее аргумента
• number round(number) - округление до ближайшего
целого
• number number(object?) - преобразование объекта к
числу
• number sum(node-set) - сумма значений узлов аргумента
www.epam.com
EPAM Systems
63
64. Полезные ссылки
• http://www.w3.org/TR/xpath• http://xml.nsu.ru/xpath/xpath_home.xml
• http
://zvon.org/xxl/XPathTutorial/Output_rus/exa
mple1.html
www.epam.com
EPAM Systems
64
65.
Спасибо за внимание!Контактная информация:
Денис Мурашев
Инструктор
EPAM Systems, Inc.
Адрес: Саратов, Рахова, 181
Email: [email protected]
http://www.epam.com
www.epam.com
EPAM Systems
65