XPath - это язык для поиска информации внутри XML документа.
Что такое XPath?
- XPath - специальный язык для определения частей XML документа
- XPath использует маршрутные выражения для навигации по XML документам
- XPath содержит библиотеку стандартных функций
- XPath - главный элемент в XSLT
- XPath также используется в XQuery, XPointer и XLink
Маршрутные выражения XPath
XPath использует маршрутные выражения для выбора узлов или узловых наборов в XML документе. Эти маршрутные выражения похожи на те выражения, которые можно увидеть при работе с традиционными файловыми системами.
В настоящее время выражения XPath можно использовать в JavaScript, Java, XML схемах, PHP, Python, C и C++, а также во множестве других языках программирования.
XPath используется в XSLT
XPath является главным составляющим элементом стандарта XSLT.
Знание XPath позволит в полной мере использовать все возможности XSL.
Пример XPath
Для демонстрации XPath будем использовать следующий XML документ:
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
В приведенной ниже таблице представлены некоторые выражения XPath и результат их работы:
Выражение Xpath | Результат |
---|---|
/bookstore/book[1] | Выбирает первый элемент book, который является потомком элемента bookstore |
/bookstore/book[last()] | Выбирает последний элемент book, который является потомком элемента bookstore |
/bookstore/book[last()-1] | Выбирает предпоследний элемент book, который является потомком элемента bookstore |
/bookstore/book[position()<3] | Выбирает первые два элемента book, которые являются потомками элемента bookstore |
//title[@lang] | Выбирает все элементы title с атрибутом lang |
//title[@lang='en'] | Выбирает все элементы title с атрибутом lang, который имеет значение 'en' |
/bookstore/book[price>35.00] | Выбирает все элементы book, которые являются потомками элемента bookstore и которые содержать элемент price со значением больше 35.00 |
/bookstore/book[price>35.00]/title | Выбирает все элементы title элементов book элементов bookstore, которые содержать элемент price со значением больше 35.00 |
Подробнее о XPath читайте в нашем Учебнике по XPath.