标签:
实例 1
基本的XPath语法类似于在一个文件系统中定位文件,如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝对路径
/AAA
| 选择根元素AAA | 
<AAA> <BBB/> <CCC/> <BBB/> <BBB/> <DDD> <BBB/> </DDD> <CCC/> </AAA>  | 
/AAA/CCC
| 选择AAA的所有CCC子元素 | 
<AAA> <BBB/> <CCC/> <BBB/> <BBB/> <DDD> <BBB/> </DDD> <CCC/> </AAA>  | 
/AAA/DDD/BBB
| 选择AAA的子元素DDD的所有子元素 | 
<AAA> <BBB/> <CCC/> <BBB/> <BBB/> <DDD> <BBB/> </DDD> <CCC/> </AAA>  | 
实例 2
如果路径以双斜线 // 开头, 则表示选择文档中所有满足双斜线//之后规则的元素(无论层级关系)
//BBB
| 选择所有BBB元素 | 
<AAA> <BBB/> <CCC/> <BBB/> <DDD> <BBB/> </DDD> <CCC> <DDD> <BBB/> <BBB/> </DDD> </CCC> </AAA>  | 
//DDD/BBB
| 选择所有父元素是DDD的BBB元素 | 
<AAA> <BBB/> <CCC/> <BBB/> <DDD> <BBB/> </DDD> <CCC> <DDD> <BBB/> <BBB/> </DDD> </CCC> </AAA>  | 
实例 3
星号 * 表示选择所有由星号之前的路径所定位的元素
| 选择所有路径依附于/AAA/CCC/DDD的元素 | 
<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>  | 
*/BBB
| 选择所有的有3个祖先元素的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>  | 
实例 4
方块号里的表达式可以进一步的指定元素, 其中数字表示元素在选择集里的位置, 而last()函数则表示选择集中的最后一个元素.
/AAA/BBB[1]
| 选择AAA的第一个BBB子元素 | 
<AAA> <BBB/> <BBB/> <BBB/> <BBB/> </AAA>  | 
/AAA/BBB[last()]
| 选择AAA的最后一个BBB子元素 | 
<AAA> <BBB/> <BBB/> <BBB/> <BBB/> </AAA>  | 
实例 5
属性通过前缀 @ 来指定
//@id
| 选择所有的id属性 | 
<AAA> <BBB id = "b1"/> <BBB id = "b2"/> <BBB name = "bbb"/> <BBB/> </AAA>  | 
//BBB[@id]
| 选择有id属性的BBB元素 | 
<AAA> <BBB id = "b1"/> <BBB id = "b2"/> <BBB name = "bbb"/> <BBB/> </AAA>  | 
//BBB[@name]
| 选择有name属性的BBB元素 | 
<AAA> <BBB id = "b1"/> <BBB id = "b2"/> <BBB name = "bbb"/> <BBB/> </AAA>  | 
//BBB[@*]
| 选择有任意属性的BBB元素 | 
<AAA> <BBB id = "b1"/> <BBB id = "b2"/> <BBB name = "bbb"/> <BBB/> </AAA>  | 
//BBB[not(@*)]
| 选择没有属性的BBB元素 | 
<AAA> <BBB id = "b1"/> <BBB id = "b2"/> <BBB name = "bbb"/> <BBB/> </AAA>  | 
实例 6
//BBB[@id=‘b1‘]
| 选择含有属性id且其值为‘b1‘的BBB元素 | 
<AAA> <BBB id = "b1"/> <BBB name = " bbb "/> <BBB name = "bbb"/> </AAA>  | 
//BBB[@name=‘bbb‘]
| 选择含有属性name且其值为‘bbb‘的BBB元素 | 
<AAA> <BBB id = "b1"/> <BBB name = " bbb "/> <BBB name = "bbb"/> </AAA>  | 
//BBB[normalize-space(@name)=‘bbb‘]
| 选择含有属性name且其值(在用normalize-space函数去掉前后空格后)为‘bbb‘的BBB元素 | 
<AAA> <BBB id = "b1"/> <BBB name = " bbb "/> <BBB name = "bbb"/> </AAA>  | 
标签:
原文地址:http://www.cnblogs.com/odoo/p/4386694.html