XPath 轴
XML 实例文档
我们将在下面的例子中使用此 XML 文档:
<?xml version="1.0" encoding="ISO-8859-1"?> <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>
XPath 轴
轴可定义相对于当前节点的节点集。
| 轴名称 | 结果 | 
|---|---|
| ancestor | 选取当前节点的所有先辈(父、祖父等)。 | 
| ancestor-or-self | 选取当前节点的所有先辈(父、祖父等)以及当前节点本身。 | 
| attribute | 选取当前节点的所有属性。 | 
| child | 选取当前节点的所有子元素。 | 
| descendant | 选取当前节点的所有后代元素(子、孙等)。 | 
| descendant-or-self | 选取当前节点的所有后代元素(子、孙等)以及当前节点本身。 | 
| following | 选取文档中当前节点的结束标签之后的所有节点。 | 
| namespace | 选取当前节点的所有命名空间节点。 | 
| parent | 选取当前节点的父节点。 | 
| preceding | 选取文档中当前节点的开始标签之前的所有节点。 | 
| preceding-sibling | 选取当前节点之前的所有同级节点。 | 
| self | 选取当前节点。 | 
位置路径表达式
位置路径可以是绝对的,也可以是相对的。
绝对路径起始于正斜杠( / ),而相对路径不会这样。在两种情况中,位置路径均包括一个或多个步,每个步均被斜杠分割:
绝对位置路径:
/step/step/...
相对位置路径:
step/step/...
每个步均根据当前节点集之中的节点来进行计算。
步(step)包括:
- 轴(axis)
 - 定义所选节点与当前节点之间的树关系
 - 节点测试(node-test)
 - 识别某个轴内部的节点
 - 零个或者更多谓语(predicate)
 - 更深入地提炼所选的节点集
 
步的语法:
轴名称::节点测试[谓语]
实例
| 例子 | 结果 | 
|---|---|
| child::book | 选取所有属于当前节点的子元素的 book 节点。 | 
| attribute::lang | 选取当前节点的 lang 属性。 | 
| child::* | 选取当前节点的所有子元素。 | 
| attribute::* | 选取当前节点的所有属性。 | 
| child::text() | 选取当前节点的所有文本子节点。 | 
| child::node() | 选取当前节点的所有子节点。 | 
| descendant::book | 选取当前节点的所有 book 后代。 | 
| ancestor::book | 选择当前节点的所有 book 先辈。 | 
| ancestor-or-self::book | 选取当前节点的所有 book 先辈以及当前节点(如果此节点是 book 节点) | 
| child::*/child::price | 选取当前节点的所有 price 孙节点。 | 
XPath 轴的更多相关文章
- xpath轴的正确使用姿势
		
网上看了许多关于轴的介绍,只介绍了语法,而没有明说具体实际中该怎么使用,百思不得其解. 背景--python中使用xpath: ----------------------------------- ...
 - python+selenium基础之XPATH轴定位(第二篇)
		
第一篇讲了xpath定位的一些基本定位方法,这里再介绍一种:xpath轴定位,应用场景是当某个元素的各个属性及其组合都不足以定位时,那么可以利用其兄弟节点或者父节点等各种可以定位的元素进行定位. 1. ...
 - XPath轴(XPath Axes)总结
		
XPath轴(XPath Axes)可定义某个相对于当前节点的节点集: 1.child 选取当前节点的所有子元素 2.parent 选取当前节点的父节点 3.descendant 选取当前节点的所有后 ...
 - XPath轴
		
XPath 轴翻译:Linyupark / 2006-03-24 The XML Example DocumentXML举例文档 We will use the following XML docum ...
 - selenium中Xpath轴定位方法
		
1.Xpath轴:轴可定义相对于当前节点的节点集. 使用语法:轴名称::节点名称 例://input[@data-value="SXRYNAME"]/parent::td/foll ...
 - 深入浅出xpath轴定位
		
在web自动化里面经常要用到定位,常用的八种定位方式中我最喜欢xpath定位,功能很强大.结合它里面的文本定位.模糊定位.逻辑定位等,基本能搞定所有的元素定位问题. 今天要讨论的是xpath的另一种比 ...
 - 了解XPath与XPath轴
		
XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. 节点(Node) 在 XPath 中,有七种类型的节点:元素.属性.文本.命名空间.处理 ...
 - web-UI自动化必会技能—xpath轴,了解一下?
		
本来以为不会再更新UI自动化相关的东西了,不过最近群里的朋友在搞UI,提出了许多问题,我看了下,大多还是页面元素定位类的问题,那今天就再讲点. 一.先了解xpath 说到元素定位,大家应该都知道常见的 ...
 - 『心善渊』Selenium3.0基础 — 7、XPath轴定位详解
		
目录 1.XPath轴定位介绍 2.位置路径表达式概念 3.步的路径表达式范例 4.练习 使用XPath轴方式,可根据文档中元素的相对位置,来进行元素的定位.例如:先找到一个相对好定位的元素,在根据与 ...
 
随机推荐
- NodeJs实现下载Excel文件
			
nodejs作为一门新的语言,报表功能也不是十分完善. (1).js-xlsx : 目前 Github 上 star 数量最多的处理 Excel 的库,支持解析多种格式表格XLSX / XLSM / ...
 - 【眼见为实】自己动手实践理解REPEATABLE READ && Next-Key Lock
			
首先设置数据库隔离级别为可重复读(REPEATABLE READ): set global transaction isolation level REPEATABLE READ ; set sess ...
 - nxlog4go 的配置驱动
			
刚开始接触log4go项目时,没有注意到配置的重要性. 阅读了log4j.log4net.log4cpp.log4cplus的部分代码,发现它们都是以xml配置来驱动日志系统运行的. 多个源文件共享一 ...
 - 【BootStrap】 布局组件 I
			
BootStrap布局组件 I 除了在原生的HTML基础上进行了外观和类别上的改进,BS还包装了很多组件进库中,设计网页时我们可以方便地调用这些组件.下面来简略地介绍一下各种各样的组件 ■ 字体图标 ...
 - 设计模式之迭代器模式详解(foreach的精髓)
			
作者:zuoxiaolong8810(左潇龙),转载请注明出处,特别说明:本博文来自博主原博客,为保证新博客中博文的完整性,特复制到此留存,如需转载请注明新博客地址即可. 各位好,很久没以LZ的身份和 ...
 - java中的IO 的示例
			
字符流 package jd_1; import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileNot ...
 - vue 2.0之基础
			
Vue Vue实例 创建实例: var vm = new Vue({ //code }) 数据与方法: 只有当实例被创建时 data 中存在的属性才是响应式的; Vm.b = 'h1' 是不会触发视图 ...
 - (译文)开始学习Vue.js特性--Scoped Slots
			
什么是scoped slots A scoped slot is a special type of slot that functions as a reusable template (that ...
 - nginx session 配置失效解决
			
nginx 反向代理后台web服务器session path导致的session 失效,特此总结下配置方法: 配置如下: location ^~ /2016tyjf_dev/djwechat { pr ...
 - 201621123062《java程序设计》第五周作业总结
			
1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 关键词:interface.Comparable.comparator 1.2 尝试使用思维导图将这些关键词组织起来.注:思维导 ...