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> |