<<catalog>
<cd country="USA">
<title>Empire Buriesque</title>
<artist>Bob Dylan</artist>
<price>10.80</price>
</cd>
<cd country="UK">
<title>Hide your heart</title>
<artist>Bob Dylan</artist>
<price>10.80</price>
</cd>
</catalog> 我将以这个xml文件来示例xpath的语法规则
/catalog 表示选择catalog根元素
/catalog/cd 表示选择catalog元素下的所有的cd元素
/catalog/cd/price 表示选择catalgo下所有cd元素的所有price元素
/catalog/cd/[price>1080] 表示选择price大于10.80的所有的cd元素
路径以斜线/ 开始,代表相对于一个元素的绝对路径。但是如果以2个斜线开始,表示选择文档中所有符合该条件的元素!
//cd 这个表示文档中所有的cd元素
/catalog/*/price catalog 元素的孙子元素下所有的price元素
/*/*/price 有2个祖先的所有的price元素
//* 文档中的所有元素
/catalog/cd[1] catalog元素的第一个子元素
/catalog/cd[last()] catalog元素的最后一个子元素
/catalog/cd[price] catalog元素下含有price子元素的所有cd元素
/catalog/cd[price=1090] catalog元素下含有price = 10.90的所有cd元素
/catalog/cd[price=10.90]/price catalog元素下price元素值等于10.90的所有的cd元素的price元素
/catalog/cd/title | /catalog/cd/artist 选择caytalog元素的自元素的cd元素下所有的title和artist元素
//title | //artist 文档中所有的title元素和artitst元素
//@country 选择所有含有country属性
//cd[@country] 选择所有含有country属性的cd元素
//cd[@*] 含有任何属性的cd元素
//cd[@country = 'UK'] 含有属性country=uk的所有cd元素
xpath的绝对路径是以斜线开始,如果是相对路径,则是没有斜线
xpath数值表达式
有2个特别的提出来讲一下:div 8div 4 = 2 就是8除以4= 2 mod 5mod2 = 1 就是取模
xpath节点集函数
count() 返回被选择的元素的数目
id() 通过元素的唯一id选择元素
last() 返回最后一个节点
name() 返回元素的名称
position() 返回是第几个节点
xpath还有好多其他的方法,具体的参考可以参看w3cschools.com本文只是讲解xpath非常容易学习,另外xpath是xml 的xsl一个非常重要的应用,大家要有一定的熟悉。