- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
XPath Introduce
XPath Introduce;;项目(Item)
;bookstore
book
title lang=enHarry Potter/title
authorJ K. Rowling/author
year2005/year
price29.99/price
/book
/bookstore;表达式;?xml version=1.0 encoding=ISO-8859-1?
bookstore
book
title lang=engHarry Potter/title
price29.99/price
/book
book
title lang=engLearning XML/title
price39.95/price
/book
/bookstore;谓语(Predicates)
谓语用来查找某个特定的节点或者包含某个指定的值的节点。
谓语被嵌在方括号中。
;选取未知节点
XPath 通配符可用来选取未知的 XML 元素。
通配符 描述
* 匹配任何元素节点。
@* 匹配任何属性节点。
node() 匹配任何类型的节点。
/bookstore/*
选取 bookstore 元素的所有子元素。
//*
选取文档中的所有元素。
//title[@*]
选取所有带有属性的 title 元素。;选取若干路径
通过在路径表达式中使用“|”运算符,可以选取若干个路径。
//book/title | //book/price
选取 book 元素的所有 title 和 price 元素。
//title | //price
选取文档中的所有 title 和 price 元素。
/bookstore/book/title | //price
选取属于 bookstore 元素的 book 元素的所有 title 元素,以及文档中所有的 price 元素。;XPath Axes(坐标轴)
坐标轴可用于定义相对于当前节点的节点集。;位置路径表达式
位置路径可以是绝对的,也可以是相对的。
绝对路径起始于正斜杠( / ),而相对路径没有。
在两种情况中,位置路径均包括一个或多个步,每个步均被斜杠分割。
绝对位置路径:
/step/step/...
相对位置路径:
step/step/...;步(step)包括:
轴(axis) 定义所选节点与当前节点之间的树关系
节点测试(node-test) 识别某个轴内部的节点
零个或者更多谓语(predicate)更深入地提炼所选的节点集
步的语法:
轴名称::节点测试[谓语];XPath 运算符;table
tr
tdimg src=1.jpgFirst Image/td
/tr
/table
table
tr
tdimg src=2.jpgSecond Image/td
/tr
/table
table
tr
tdimg src=3.jpgThird Image/td
/tr
/table;1. 指定查找
我们有一个a元素为:a href=test.htmclick me/a
browser.link(:xpath,//a[@href=test.htm]).text
# = click me“
如果这个a是第一个,我们可以用
browser.link(:xpath, “//a”).html #//a 返回第一个
browser.link(:xpath, //a[1]).html #//a[1] 数组是以1开始,非0;2. 完全定位查找?
百度的页面上有:
input type=submit value=百度一下 id=su class=s_btn nmousedown=this.className=s_btn s_btn_h nmouseout=this.className=s_btn
browser.button(:xpath,//input[@id=‘su’]).type
# = “submit“
3. 也可以模糊查找
browser.button(:xpath,//input[contains(@id, ‘su’)]).type
# = “submit
;4. 相对路径
例如有:
div id=u
a href=/gaoji/preferences.html name=tj_setting
搜索设置
/a
/div
我们可以对a的父节点进行搜索:
browser.element(:xpath, //a/..).tag_name
#= div
5. 完全模糊查找
当我们只知道id,不知道type信息的情况下
browser.element(:xpath, //×[@i
文档评论(0)