xpath元素定位方法

XPath是一种用于选取XML文档中节点的语言,它包含丰富的内置函数,如字符串、数值、节点处理等。XPath有七种节点类型,如元素、属性等,并支持相对和绝对路径表达式。它还提供了多种轴(如child、parent、following-sibling等)来查找和操作节点。此外,XPath允许通过属性、逻辑表达式和函数进行复杂查询,如查找特定属性的元素、定位特定位置的节点或执行模糊匹配。
摘要由CSDN通过智能技术生成

XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。
XPath 含有超过 100 个内建的函数。这些函数用于字符串值、数值、日期和时间比较、节点和 QName 处理、序列处理、逻辑值等等。
在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。
http://www.w3school.com.cn/example/xmle/books.xml
节点(Node):
(文档节点)
J K. Rowling (元素节点)
lang=“en” (属性节点)
基本值(或atomic value):
基本值是无父或无子的节点。
例子:J K. Rowling, "en“
父节点(parent):
每个元素以及属性都有一个父
例子:book 元素是 title、author、year 以及 price 元素的父
在这里插入图片描述

XML 文档是被作为节点树来对待的。
树的根被称为文档节点或者根节点
Star–》
//代表从目录中任意位置查找:相对路径查找,一般多用相对路径查找,可以找到变化结构的元素
/必须顺序从一个目录结构查找绝对路径:/bookstore/

//* 查找全部

parent:😗 表示当前节点的父节点元素
ancestor:😗 表示当前节点的祖先节点元素
child:😗 表示当前节点的子元素 /A/descendant:😗 表示A的所有后代元素
self:😗 表示当前节点的自身元素
ancestor-or-self:😗 表示当前节点的及它的祖先节点元素
descendant-or-self:😗 表示当前节点的及它们的后代元素
following-sibling:😗 表示当前节点的后序所有兄弟节点元素
preceding-sibling:😗 表示当前节点的前面所有兄弟节点元素
following:😗 表示当前节点的后序所有元素
preceding:😗 表示当前节点的所有元素

//title[@*] —表示所有含有属性的title元素

//food[1] 等价于==//food[position()=1] 查找第一个元素
position()可用表达式:如//food[position()>1] 函数匹配position()
//book[not(position()>2)] —取不大于2定位的元素

//food[last()] 查找最后一个元素,函数匹配last()

倒数第二个://food[last()-1]

@xxx代表属性=‘xxx’ 根据属性查找
//book[@category=“web” and @cover=“paperback”]----高阶用法:找到单个属性不唯一,可以组合其他属性来变为唯一性
//book[@category=“web” or @cover=“paperback”]
//book[@category=!“web”]

统计多个连接,可以模糊匹配多个contains
//book[contains(.,“Potter”)] 包含Potter对象
//book/title[contains(.,“Potter”)] 包含Potter对象==//book/title[contains(text(),“Potter”)]
精确匹配://book/year[text(),=“2015”]
//book/year[text()<=“2015”]
//book/year[not(.=“2015”)]

高阶用法:用属性无法定位,找相邻元素定位元素–轴:–适用于较难定位的元素方法

/bookstore/book[1]/following-sibling:😗;代表book[1]下面的所有同级元素

/bookstore/book[1]/price/following-sibling:😗;代表book[1]下级price下面的所有同级元素

/bookstore/book[1]/price/preceding-sibling:😗;代表book[1]下级price前面的所有同级元素

/bookstore/book[1]/price/parent:😗;代表book[1]下级price前面的所有父级元素

/bookstore/book[1]/price/child:😗;代表book[1]下级price前面的所有父级元素

/bookstore/book[1]/price/descendant:😗;代表book[1]下级price前面的所有子孙级元素

借鉴下面:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值