(2)xpath简介和常用术语

xpath定义:XPath XML路径语言,它是一种用来确定XML文档中某部分位置,XPath包含一个标准函数库, 是一个W3C标准;它使用路径表达式在XML文档中进行导航,简单来总结就是基于XML的树状结构,提供在数据结构树中找寻节点的能力。

1、节点(node)
XPath中有7种结点类型:元素、属性、文本、命名空间、处理指令、注释以及文档节点(或成为根节点)
定义:http://blog.csdn.net/luyifeiniu/article/details/1574589
举例:     

(2)xpath简介和常用术语

2、节点关系:父、子、同胞、先辈、后代

<bookstore>

<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

</bookstore>

①父:book 元素是 title、author、year 以及 price 元素的父
②子:title、author、year 以及 price 元素都是 book 元素的子
③同胞:title、author、year 以及 price 元素都是同胞
④先辈:title 元素的先辈是 book 元素和 bookstore 元素
⑤后代:bookstore 的后代是 book、title、author、year 以及 price 元素

3、①xpath选取节点(举例相对定位)

(2)xpath简介和常用术语

定位获得.//*[@id='pagerForm']/div/a[2]/span
注解:选取id为“pagerform”下子元素div标签下第二个a标签下的span内容(不管其位置)

3、②xpath选取节点(举例绝对定位)

(2)xpath简介和常用术语

定位获得html/body/div[1]/div[4]/div[2]/div[2]/div[1]/form/div/a[2]/span

注解: 以/为根目录层层指定

4、xpath谓语:用来查找某个特定的节点或者包含某个指定的值的节点

(2)xpath简介和常用术语

举例:a[2]为选取属于div子元素下的第二个a元素;a[2]=a[last()-2]为选取属于div子元素的倒数第三个a 元素。

5、XPath 轴:轴可定义相对于当前节点的节点集。

步的语法:           轴名称::节点测试[谓语]     step/step/...

(2)xpath简介和常用术语

定位问题:若上一级动态变化,需定位上一个div。则preceding:div[1]或者starts-with[“id名”]

6、starts-with :匹配一个属性开始位置的关键字
contains: 匹配一个属性值中包含的字符串
text():匹配的是显示文本信息,此处也可以用来做定位用

eg.
//input[starts-with(@name,'name1')]     查找name属性中开始位置包含'name1'关键字的页面元素
//input[contains(@name,'na')]         查找name属性中包含na关键字的页面元素
<a href="http://www.baidu.com">百度搜索</a>
xpath写法为 //a[text()='百度搜索']   或者    //a[contains(text(),"百度搜索")]