计算机系统应用教程网站

网站首页 > 技术文章 正文

Xpath 定位HTML节点 xpath定位href

btikc 2024-10-25 10:59:26 技术文章 6 ℃ 0 评论

一、介绍

XPath(XML Path Language)是一种用于在 XML 文档中定位节点的查询语言。它提供了一种简洁而强大的方式来遍历和选择 XML 文档中的元素和属性

二、语法

表达式

描述

示例

nodename

选择指定标签名的节点

html 将选择所有名为html 的节点。

*

选择所有节点

* 选择文档中的所有节点

/nodename

从根节点开始选择,只能一层一层的往下找

/html/body/div将选择文档中的所有div 节点

//tagname

选择任意位置的节点

//div将选择文档中的所有div 节点

@

选择具有指定属性名和属性值的节点,或者获取属性

//div[@id="billboard"]//a/@href,[@id="billboard"]获取id=billboard的div,@href获取href属性

.

选取当前节点

.//div[@id="billboard"]

..

选取当前节点的父节点

..//div[@id="billboard"]

三、谓语

表达式

描述

示例

[condition]

添加条件来筛选节点

//div[@id="billboard"]获取id=billboard的div

position()

选择具有指定位置的节点

//div[@id="billboard"]//tr[position()=1]获取第一个tr,等同于 //div[@id="billboard"]//tr[1]

last()

选择最后一个节点

//div[@id="billboard"]//tr[last()] 获取最后一个tr

四、运算符

表达式

描述

示例

|

计算两个节点集

//book | //cd,返回所有拥有 book 和 cd 元素的节点集

+

8 + 4

-

8 - 4

*

8 * 4

div

8 div 4

>

大于

//div[@id="billboard"]//tr[position()>1]获取位置大于2的tr

<

小于

//div[@id="billboard"]//tr[position()<2]获取位置小于2的tr

=

等于

//div[@id="billboard"]//tr[position()=1]获取第一个tr,等同于 //div[@id="billboard"]//tr[1]

!=

非等于

//div[@id="billboard"]//tr[position()=1]获取位置非等于1的元素

>=

大于等于

//div[@id="billboard"]//tr[position()>=2]获取位置大于等于2的tr

<=

小于等于

//div[@id="billboard"]//tr[position()<=2]获取位置小于等于2的tr

and

//div[@id="billboard"]//tr[@class='test' and position()>2] 获取class为test且位置大于2的tr

or

//div[@id="billboard"]//tr[position()=1 or position()=2]获取位置等于1和等于2的tr

not

//div[@id="billboard"]//tr[not(position()=1)]获取位置非1的的tr

五、轴(Axis)

表达式

描述

ancestor

选取当前节点的所有先辈(父、祖父等)。

ancestor-or-self

选取当前节点的所有先辈(父、祖父等)以及当前节点本身。

attribute

选取当前节点的所有属性。

child

选取当前节点的所有子元素。

descendant

选取当前节点的所有后代元素(子、孙等)。

descendant-or-self

选取当前节点的所有后代元素(子、孙等)以及当前节点本身。

following

选取文档中当前节点的结束标签之后的所有节点。

following-sibling

选取当前节点之后的所有兄弟节点

namespace

选取当前节点的所有命名空间节点。

parent

选取当前节点的父节点。

preceding

选取文档中当前节点的开始标签之前的所有节点。

preceding-sibling

选取当前节点之前的所有同级节点。

self

选取当前节点。

六、常用函数

更多函数请参考:https://www.runoob.com/xpath/xpath-functions.html

表达式

描述

示例

position()

选择具有指定位置的节点

//div[@id="billboard"]//tr[position()=1]获取第一个tr,等同于 //div[@id="billboard"]//tr[1]

last()

选择最后一个节点

//div[@id="billboard"]//tr[last()] 获取最后一个tr

text()

获取节点的文本内容

//div[@id="billboard"]//a/text() 获取div[@id="billboard"]下所有a标签中的文本

contains(@attr,?'value')????

模糊匹配

//div[@id="billboard"]//a[contains(@href, '35698284')] 选择href中包含35698284的a标签

starts-with(@attr,?'value')?

是否以指定字符开头

//div[@id="billboard"]//a[starts-with(@href, 'https')] 选择href以https开头的a标签

ends-with(@attr,?'value')

是否以指定字符结尾

//div[@id="billboard"]//a[ends-with(@href, '35698284')] 选择href以35698284结尾的a标签

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表