基本的XPath语法类似于在一个文件系统中定位文件,如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝对路径:
/AAA
选择根元素AAA
/AAA/CCC
选择AAA 的所有CCC子元素
//BBB
选择所有BBB元素
//DDD/BBB
选择所有父元素是DDD的BBB元素
星号 * 表示选择所有由星号之前的路径所定位的元素
/AAA/CCC/DDD/*
选择所有路径依附于/AAA/CCC/DDD 的元素
/*/*/*/BBB
选择所有的有3个祖先元素的BBB元素
//*
选择所有元素
/AAA/BBB[1]
选择AAA 的第一个BBB子元素
/AAA/BBB[last()]
选择AAA 的最后一个BBB子元素
//@id
选择所有的id属性
//BBB[@name]
选择有name属性的BBB元素
//BBB[@*]
选择有任意属性的BBB元素
//BBB[@id='b1']
选择含有属性id且其值为'b1'的BBB元素
//BBB[@name='bbb']
选择含有属性name且其值为'bbb'的BBB元素
//BBB[normalize-space(@name)='bbb']
选择含有属性name且其值(在用normalize-space函数去掉前后空格后)为'bbb'的BBB元素
//*[count(BBB)=2]
选择含有2个BBB子元素的元素
//*[string-length(name()) = 3]
选择名字长度为3的元素
//CCC | //BBB
选择所有的CCC和BBB元素
/AAA
等价于 /child::AAA
/descendant::*
选择文档根元素的所有后代.即所有的元素被选择
/AAA/BBB/descendant::*
选择/AAA/BBB 的所有后代元素
//DDD/parent::*
选择DDD元素的所有父节点
<AAA>
< BBB/>
< CCC/>
< BBB/>
< BBB/>
< DDD>
< BBB/>
</DDD>
< CCC/>
</AAA>