XML Path Language (XPath) на примерах

XPath описан в стандарте XPath 1.0. Согласно написанному там «XPath is a language for addressing parts of an XML document … «. По-русски можно сказать, что XPath нужен для разбора (parsing) XML документов.
В приведенных ниже примерах рассматриваются наиболее часто употребимые (по мнению автора) конструкции языка.

1 Если путь начинается с символа /, то он представляет абсолютный путь к заданному элементу.

/AAA /AAA/DDD/BBB
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC/>
</AAA>
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC/>
</AAA>

2 Если путь начинается с //, то будут выбраны все элементы, соответствующие указанному шаблону.

//BBB //DDD/BBB
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
</CCC>
</AAA>
<AAA>
<BBB/>
<CCC/>
<BBB/>
<DDD>
<BBB/>
</DDD>
<CCC>
<DDD>
<BBB/>
<BBB/>
</DDD>
</CCC>
</AAA>

3 Символ ‘*’ указывает, что надо выбрать все элементы, соответствующие пути перед ней.

/AAA/CCC/DDD/* /*/*/*/BBB //*
<AAA>
<XXX>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</XXX>
<CCC>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</CCC>
<CCC>
<BBB>
<BBB>
<BBB/>
</BBB>
</BBB>
</CCC>
</AAA>
<AAA>
<XXX>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</XXX>
<CCC>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</CCC>
<CCC>
<BBB>
<BBB>
<BBB/>
</BBB>
</BBB>
</CCC>
</AAA>
<AAA>
<XXX>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</XXX>
<CCC>
<DDD>
<BBB/>
<BBB/>
<EEE/>
<FFF/>
</DDD>
</CCC>
<CCC>
<BBB>
<BBB>
<BBB/>
</BBB>
</BBB>
</CCC>
</AAA>

4 Выражение в квадратных скобках позволяет задавать более четкие критерии для элемента. Так число в квадратных скобках обозначает позицию элемента в выбранном множестве. Функция last() позволяет указать последний элемент в выборке.

/AAA/BBB[1] /AAA/BBB[last()]
<AAA>
<BBB/>
<BBB/>
<BBB/>
<BBB/>
</AAA>
<AAA>
<BBB/>
<BBB/>
<BBB/>
<BBB/>
</AAA>
Оцените статью
Добавить комментарий