博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XPath 实例
阅读量:5128 次
发布时间:2019-06-13

本文共 9144 字,大约阅读时间需要 30 分钟。

实例 1基本的XPath语法类似于在一个文件系统中定位文件,如果路径以斜线 / 开始, 那么该路径就表示到一个元素的绝对路径。/AAA选择根元素AAA     
/AAA/CCC选择AAA的所有CCC子元素
/AAA/DDD/BBB选择AAA的子元素DDD的所有子元素
实例 2如果路径以双斜线 // 开头, 则表示选择文档中所有满足双斜线//之后规则的元素(无论层级关系) //BBB选择所有BBB元素
//DDD/BBB选择所有父元素是DDD的BBB元素
实例 3星号 * 表示选择所有由星号之前的路径所定位的元素/AAA/CCC/DDD/*选择所有路径依附于/AAA/CCC/DDD的元素
/*/*/*/BBB选择所有的有3个祖先元素的BBB元素
//*选择所有元素
实例 4方块号里的表达式可以进一步的指定元素, 其中数字表示元素在选择集里的位置, 而last()函数则表示选择集中的最后一个元素./AAA/BBB[1]选择AAA的第一个BBB子元素
/AAA/BBB[last()] 选择AAA的最后一个BBB子元素
实例 5//@id选择所有的id属性
//BBB[@id]选择有id属性的BBB元素
//BBB[@name]选择有name属性的BBB元素
//BBB[@*]选择有任意属性的BBB元素
//BBB[not(@*)]选择没有属性的BBB元素
实例 6属性的值可以被用来作为选择的准则, normalize-space函数删除了前部和尾部的空格, 并且把连续的空格串替换为一个单一的空格//BBB[@id=\'b1\']选择含有属性id且其值为\'b1\'的BBB元素
//BBB[@name=\'bbb\']选择含有属性name且其值为\'bbb\'的BBB元素
//BBB[normalize-space(@name)=\'bbb\']选择含有属性name且其值(在用normalize-space函数去掉前后空格后)为\'bbb\'的BBB元素
实例 7count()函数可以计数所选元素的个数//*[count(BBB)=2]选择含有2个BBB子元素的元素
//*[count(*)=2]选择含有2个子元素的元素
//*[count(*)=3]选择含有3个子元素的元素
实例 8name()函数返回元素的名称, start-with()函数在该函数的第一个参数字符串是以第二个参数字符开始的情况返回true, contains()函数当其第一个字符串参数包含有第二个字符串参数时返回true.//*[name()=\'BBB\']选择所有名称为BBB的元素(这里等价于//BBB)
//*[starts-with(name(),\'B\')]选择所有名称以\"B\"起始的元素
//*[contains(name(),\'C\')]选择所有名称包含\"C\"的元素
实例 9多个路径可以用分隔符 | 合并在一起//CCC | //BBB 选择所有的CCC和BBB元素
/AAA/EEE | //BBB选择所有的BBB元素和所有是AAA的子元素的EEE元素
/AAA/EEE | //DDD/CCC | /AAA | //BBB可以合并的路径数目没有限制
实例 10child轴(axis)包含上下文节点的子元素, 作为默认的轴,可以忽略不写./AAA等价于 /child::AAA
/child::AAA等价于/AAA
/AAA/BBB等价于/child::AAA/child::BBB
/child::AAA/child::BBB等价于/AAA/BBB
/child::AAA/BBB二者都可以被合并
实例 11descendant (后代)轴包含上下文节点的后代,一个后代是指子节点或者子节点的子节点等等, 因此descendant轴不会包含属性和命名空间节点./descendant::*选择文档根元素的所有后代.即所有的元素被选择
/AAA/BBB/descendant::*选择/AAA/BBB的所有后代元素
//CCC/descendant::*选择在祖先元素中有CCC的所有元素

  

转载于:https://www.cnblogs.com/daocaowu/archive/2013/05/14/3077905.html

你可能感兴趣的文章
STM32单片机使用注意事项
查看>>
js window.open 参数设置
查看>>
032. asp.netWeb用户控件之一初识用户控件并为其自定义属性
查看>>
移动开发平台-应用之星app制作教程
查看>>
leetcode 459. 重复的子字符串(Repeated Substring Pattern)
查看>>
springboot No Identifier specified for entity的解决办法
查看>>
浅谈 unix, linux, ios, android 区别和联系
查看>>
51nod 1428 活动安排问题 (贪心+优先队列)
查看>>
Solaris11修改主机名
查看>>
latex for wordpress(一)
查看>>
如何在maven工程中加载oracle驱动
查看>>
Flask 系列之 SQLAlchemy
查看>>
aboutMe
查看>>
【Debug】IAR在线调试时报错,Warning: Stack pointer is setup to incorrect alignmentStack,芯片使用STM32F103ZET6...
查看>>
一句话说清分布式锁,进程锁,线程锁
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
下一代操作系统与软件
查看>>
[NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
查看>>