Xpath(一)

/                             绝对路径,从根元素开始
//                           相对路径,递归查找所有子孙
.                             当前层

..                           上一层
*                           通配符,表示任意


一个元素是一个单独的个体,它有属性,有内容值

[]                          谓语,里面跟的是条件
                            条件支持算数运算+-*/><

                            条件支持逻辑运算 and or
text()                    取文本值用,不加@因为它是个函数


常用函数:

contains                包含,写法是括号加两个入参contains(a,b)a包含b
text()                   是取文本值,也可以当做一个查询条件
last()                    取末尾

last()-1                 倒数第二
starts-with()         表示以XX开头,写法是括号加两个入参
not()                    表示否定,把内容全包进去not(contains(a,b))a不包含b

 

练习:

地址:http://www.w3school.com.cn/example/xmle/books.xml

1.选取 书店里 所有书的详细信息
//book
2.选取 所有书的标题,所有书的分类签
选取 所有书的标题//book/title/text()
所有书的分类签//book/@category
3.选取 第一本书的定价
//book[1]/price[text()]
4.选取 最后一本书的作者
//book[last()]/author/text()
5.选取 倒数第二本书的 分类标签
//book[last()-1]/@category
6.选取 定价高于35的书的标题
//book/price[text()>35]/../title/text()
7.选取 定价在30到40之间的书的标题
//book/price[text()>30 and text()<40]/../title/text()
8.选取 作者多于一个的书的标题
//book[count(author)>1]/title/text()
9.选取 作者多于一个的书 只列出所有作者名
//book[count(author)>1]/author
10.选取 分类是web 且价格低于40的书
//book[@category='web']/price[text()<40]/..
11.选取 标题名称包含X的 所有书的定价
//book/title[(contains(text(),'X'))]/../price/text()
12.选取 分类是web 且作者不包括James的 作者名
//book[@category='web']/author[not(contains(text(),'James'))]/text()

posted on 2016-07-01 11:40  冰蓝小猪宝宝  阅读(228)  评论(0)    收藏  举报

导航