标签:[1] row 属性 books book coding att 标签 ant
1. Xpath使用路径表达式还选取文档种的节点或者节点集, 节点是通过沿着路径或者步来选取的。
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book> <title lang="eng">Harry Potter</title> <price>29.99</price> </book> <book> <title lang="eng">Learning XML</title> <price>39.95</price> </book> </bookstore>
bookstore - 选取bookstore元素的所有子节点
/booksotre - 选取根元素bookstore /代表绝对路径
bookstore/book - 选取属于bookstore的子元素的所有book元素
//book - 选取所有的boo元素,不管他们的位置
booksotre//book -选取属于bookstore的后代的所有book元素,而不管他们的位置
//@lang - 选取名为lang的所有属性的元素
2. xpath谓语
谓语用来查找某个特定的节点或者包含某个指定的值的节点
谓语被嵌套在方括号里面
/booksotre/book[1] - 选取bookstore的子元素,第一个为book的元素
/bookstore/bokk[last()] - 选取bookstore的子元素,最后一个为book的元素
/bookstore/book[last()-1] - 选取bookstore的子元素,倒数第二个为book的元素
/bookstore/book[position()<3]- 选取bookstore的子元素,最前面两个为book的元素
//title[@lang] - 选取title元素 有属性lang的元素
//title[@lang=‘eng‘] - 选取title元素 有属性lang的元素 且lang=eng
/bookstore/book[price>35] 选取booksotore下的book子元素,且price > 35
/bookstore/book[price<35]/title - 选取booksotre下所有的book元素,且price <35, book下的title元素
3. 选取未知节点
* 匹配任何元素节点
@* 匹配任何属性节点
node() 匹配任何类型的节点
4. xpath 轴
轴可定义相对于当前节点的节点集
ancestor - 当前节点的所有先辈 (父,祖父)
attribute - 选取当前节点的所有属性
child - 当前节点的所有子元素
descendant - 当前节点的所有后代元素(子,孙)
following - 当前节点的结束标签之后的所有节点
following-sibling - 当前节点之后的所有兄弟节点
parent - 选档节点的父节点
preceding - 当前节点的开始标签之前的所有节点
preceding-sibling - 当前节点开始标签之前的所有同级节点
5. xpath轴的语法
/bookstore/child::book - bookstore下所有为book的子节点
//book/attribute::lang - 所有book下attribute为lang的内容
/bookstore/child::* - bookstore节点下所有的子节点
//book/attribute::* - 所有book节点下的所有的属性
/bookstore/book/child::text() - 当前节点下得多有子节点的文字
6.练习
<?xml version="1.0" encoding="UTF-8"?> <bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> <book category="WEB"> <title lang="en">XQuery Kick Start</title> <author>James McGovern</author> <author>Per Bothner</author> <author>Kurt Cagle</author> <author>James Linn</author> <author>Vaidyanathan Nagarajan</author> <year>2003</year> <price>49.99</price> </book> <book category="WEB"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>
- 选取所有的title //title /bookstore/book/title
- 选取第一个book的title //book[1]/title /bookstore/book[1]/title
- 选取所有的price节点种的所有文本 //price/text() /bookstore/book/price/text()
-选取价格高于35的price节点 //price[text()>35] /bookstore/book[price>35]/price
- 选取价格高于35的title节点 //price[text()>35]/preceding-sibling::title
标签:[1] row 属性 books book coding att 标签 ant
原文地址:https://www.cnblogs.com/srialy/p/9329104.html