XPath 元素及属性查找
实例 1
基本的XPath语法类似于在一个文件系统中定位文件,如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝对路径
/AAA
选择根元素AAA |
<AAA> <BBB/> <CCC/> <BBB/> <BBB/> <DDD> <BBB/> </DDD> <CCC/> </AAA> |
/AAA/CCC
选择AAA的所有CCC子元素 |
<AAA> <BBB/> <CCC/> <BBB/> <BBB/> <DDD> <BBB/> </DDD> <CCC/> </AAA> |
/AAA/DDD/BBB
选择AAA的子元素DDD的所有子元素 |
<AAA> <BBB/> <CCC/> <BBB/> <BBB/> <DDD> <BBB/> </DDD> <CCC/> </AAA> |
实例 2
如果路径以双斜线 // 开头, 则表示选择文档中所有满足双斜线//之后规则的元素(无论层级关系)
//BBB
选择所有BBB元素 |
<AAA> <BBB/> <CCC/> <BBB/> <DDD> <BBB/> </DDD> <CCC> <DDD> <BBB/> <BBB/> </DDD> </CCC> </AAA> |
//DDD/BBB
选择所有父元素是DDD的BBB元素 |
<AAA> <BBB/> <CCC/> <BBB/> <DDD> <BBB/> </DDD> <CCC> <DDD> <BBB/> <BBB/> </DDD> </CCC> </AAA> |
实例 3
星号 * 表示选择所有由星号之前的路径所定位的元素
选择所有路径依附于/AAA/CCC/DDD的元素 |
<AAA> <XXX> <DDD> <BBB/> <BBB/> <EEE/> <FFF/> </DDD> </XXX> <CCC> <DDD> <BBB/> <BBB/> <EEE/> <FFF/> </DDD> </CCC> <CCC> <BBB> <BBB> <BBB/> </BBB> </BBB> </CCC> </AAA> |
*/BBB
选择所有的有3个祖先元素的BBB元素 |
<AAA> <XXX> <DDD> <BBB/> <BBB/> <EEE/> <FFF/> </DDD> </XXX> <CCC> <DDD> <BBB/> <BBB/> <EEE/> <FFF/> </DDD> </CCC> <CCC> <BBB> <BBB> <BBB/> </BBB> </BBB> </CCC> </AAA> |
//*
选择所有元素 |
<AAA> <XXX> <DDD> <BBB/> <BBB/> <EEE/> <FFF/> </DDD> </XXX> <CCC> <DDD> <BBB/> <BBB/> <EEE/> <FFF/> </DDD> </CCC> <CCC> <BBB> <BBB> <BBB/> </BBB> </BBB> </CCC> </AAA> |
实例 4
方块号里的表达式可以进一步的指定元素, 其中数字表示元素在选择集里的位置, 而last()函数则表示选择集中的最后一个元素.
/AAA/BBB[1]
选择AAA的第一个BBB子元素 |
<AAA> <BBB/> <BBB/> <BBB/> <BBB/> </AAA> |
/AAA/BBB[last()]
选择AAA的最后一个BBB子元素 |
<AAA> <BBB/> <BBB/> <BBB/> <BBB/> </AAA> |
实例 5
属性通过前缀 @ 来指定
//@id
选择所有的id属性 |
<AAA> <BBB id = "b1"/> <BBB id = "b2"/> <BBB name = "bbb"/> <BBB/> </AAA> |
//BBB[@id]
选择有id属性的BBB元素 |
<AAA> <BBB id = "b1"/> <BBB id = "b2"/> <BBB name = "bbb"/> <BBB/> </AAA> |
//BBB[@name]
选择有name属性的BBB元素 |
<AAA> <BBB id = "b1"/> <BBB id = "b2"/> <BBB name = "bbb"/> <BBB/> </AAA> |
//BBB[@*]
选择有任意属性的BBB元素 |
<AAA> <BBB id = "b1"/> <BBB id = "b2"/> <BBB name = "bbb"/> <BBB/> </AAA> |
//BBB[not(@*)]
选择没有属性的BBB元素 |
<AAA> <BBB id = "b1"/> <BBB id = "b2"/> <BBB name = "bbb"/> <BBB/> </AAA> |
实例 6
//BBB[@id='b1']
选择含有属性id且其值为'b1'的BBB元素 |
<AAA> <BBB id = "b1"/> <BBB name = " bbb "/> <BBB name = "bbb"/> </AAA> |
//BBB[@name='bbb']
选择含有属性name且其值为'bbb'的BBB元素 |
<AAA> <BBB id = "b1"/> <BBB name = " bbb "/> <BBB name = "bbb"/> </AAA> |
//BBB[normalize-space(@name)='bbb']
选择含有属性name且其值(在用normalize-space函数去掉前后空格后)为'bbb'的BBB元素 |
<AAA> <BBB id = "b1"/> <BBB name = " bbb "/> <BBB name = "bbb"/> </AAA> |
转载于:https://www.cnblogs.com/odoo/p/4386694.html
XPath 元素及属性查找相关推荐
- python--通过xpath相对节点位置查找元素(续)
之前写过相对父元素及下一个兄弟元素的方法. 这次补充一下xpath相对节点位置查找元素的所有方法.例子就不举了,自己可以去练练. xpath相对节点查找方法: 1.xpath('./ancestor: ...
- python xpath定位元素方法_python--通过xpath相对节点位置查找元素(续)
之前写过相对父元素及下一个兄弟元素的方法. 这次补充一下xpath相对节点位置查找元素的所有方法.例子就不举了,自己可以去练练. xpath相对节点查找方法: 1.xpath('./ancestor: ...
- xpath元素和css选择器的定位
我们一般进行元素定位使用xpath和css选择器 1.xpath元素定位 1.什么是xpath? XPath 是一门在 XML 文档中查找信息的语言 XPath即为XML路径语言(XML Path L ...
- XPATH元素定位详解
Xpath,Css元素通用定位 一.问题: 通常情况下,元素定位使用id.name.class.text可以满足日常大部分定位需求.但是 随着自动化测试的深入,和不同框架要求,会发现上面的定位方式无法 ...
- jsoup 标准化html代码,Jsoup从元素抽取属性,文本和HTML
在解析获得一个Document实例对象,并查找到一些元素之后,你希望取得在这些元素中的数据.要取得一个属性的值,可以使用Node.attr(String key) 方法 对于一个元素中的文本,可以使用 ...
- html元素data属性设置变量,HTML5 自定义属性 data-* 和 jQuery.data 详解
编辑注:HTML中使用data-xx="xx"开头标记的属性到底有什么用,直接使用xx="xx"不是更简单吗?其实data-xx是HTML5的一个属性,支持通过 ...
- java 递归遍历对象所有属性_Java学习之Xml系列二:xml按条件查询、xml递归遍历所有元素和属性...
xml中加入了几条,为了方便查询时作为示例. 话不多说见代码注释: DTD文件:SwordTypeDefinition.dtd XML文件:SwordLib.xml SwordLibrary SYST ...
- Html5不可见标签,及标签属性(元素对象属性) a href target name id 相对路径
标签属性分类(元素对象属性) 不可见标签与可见标签: <head></head> 属于不可见标签, 里面的内容一般用于css还有全局的一些变量,声明等. 而且如果 ...
- svg常用元素和属性
1. 介绍 SVG 是一种基于 XML 语法的图像格式,全称是可缩放矢量图(Scalable Vector Graphics).其可以直接被插入到网页 DOM 中,甚至作为CSS背景属性等,且无论放大 ...
- Java使用Jsoup爬虫获取网站内容(三)获取元素内容属性的方法
介绍 我们可以通过Jsoup来获取一个Document对象,然后通过对Document对象进行解析来获取元素对象,最后通过元素对象的一些方法来获取元素的属性名称,属性值以及文本内容. 代码 附上获取方 ...
最新文章
- 【PC工具】U盘数据加密工具,windows自带U盘文件加密工具体验,测试加密时间...
- python实现条件匹配_python3 re如何匹配满足条件的选项?
- 粒子群算法求解带约束优化问题 源码实现
- wxWidgets:wxDialog类用法
- android 暂停其他app的声音_【一万个APP】第二十二期潮汐
- 各大主流.Net的IOC框架性能测试比较
- ajax获得excel文件流在前端打开_主流前端技术讲解,面试必考!
- ios html gif 显示,iOS gif图显示问题
- 【零基础学Java】—final关键字与四种用法(二十九)
- FluentValidation:一个非常受欢迎的,用于构建强类型验证规则的.NET 库
- python自动化_Python 接口自动化
- 计算机硕士系统毕业论文答辩ppt,计算机硕士论文答辩ppt
- [CTF]RAR加密原理
- C语言实现矩阵卷积运算
- leaflet 加载海量点位,点击marker 查看详情功能
- Check Point R80.40 防火墙
- 什么是差模干扰和共模干扰?
- 送给佳佳同学的礼物:测试流程及并行测试介绍
- 木子-前端-ajax传值与接收最简单的方式
- [转] 下班后的九种最佳放松方法
热门文章
- java.io.NotSerializableException: org.apache.kafka.clients.consumer.ConsumerRecord
- “最快3个月复制支付宝的核心能力” 解密蚂蚁金服bPaaS
- PL/SQL数据类型
- 游戏服务端引擎(kbengine完整代码+demo源码)
- PHP程序员面临的成长瓶颈
- PsExec:一个非常实用的【远程运行】工具
- WSUS全攻略之二 :安装WSUS
- dcopserver出错解决办法
- 特殊的网络环境下的故障处理
- js 自定义 $ 选择器