xpath选择器

二、使用步骤

1.xpath获取父节点方式

获取这个div节点的父节点
//div[@aria-label=“Like”]/parent::*

获取父节点的兄弟节点的第二个
//div[@aria-label=“Like”]/parent::/following-sibling::[2]

获取某个节点的祖先是某个属性的节点
//div[@aria-label=“Like”]/ancestor::div[@role=“article”]/div

通过某个节点 获取共同祖先下的另外一个节点
//div[@aria-label=“Like”]/parent::*//ancestor::div[@role=“article”]//div[@data-ad-comet-preview=“message”]//span//div[@dir=“auto”]

2.document.evaluate()

document.evaluate() 是一个在浏览器环境中执行 XPath 表达式的方法
返回一个 XPathResult 对象,该对象包含了表达式执行的结果。
这个方法可以执行几乎任何 XPath 查询,并且可以返回不同类型的结果,

// 使用 document.evaluate() 方法执行 XPath 表达式
const result = document.evaluate(xpathExpression, document, null, XPathResult.ANY_TYPE, null);

xpathExpression:
一个字符串,是你想要执行的xpath表达式。

contextNode
参数指定了xpath表达式的上下文节点。 表达式从这个节点开始执行。
大多数情况下会传入document作为上下文。
如果想要查询文档的某个特定部分,可以传入一个更具体的节点。

namespaceResolver
是一个函数或null
用于解析xpath表达式中出现的命名空间前缀。 如果文档使用了XML命名空间,并且xpth表达式需要处理这些命名空间,就需要提供这个参数;对于不涉及命名空间的普通html文档,可以写null

resultType
该参数指定了期望evaluate()方法返回的结果类型。
XPathResult.ANY_TYPE 表示没有指定特定的结果类型,让浏览器自己决定返回结果。
其他可能的值: XPathResult.NUMBER_TYPE, XPathResult.STRING_TYPE, XPathResult.BOOLEAN_TYPE, XPathResult.UNORDERED_NODE_ITERATOR_TYPE 等,这些值分别对应不同的返回类型。

result
可以是一个已经存在的XPathResult 对象,用于存放结果,或 null
如果传入一个已存在的XPathResult对象,evaluate() 方法会把新的结果放在这个对象中。
如果传入null ,方法会创建一个新的XPathResult对象


在调用 document.evaluate() 之后,会得到一个 XPathResult 对象。
可以使用 iterateNext() 方法来遍历节点集合(如果结果是一个节点集合)

或者使用 singleNodeValue 属性来获取单个节点(如果结果是单个节点)。返回的结果类型取决于你的XPath表达式和你指定的 resultType。


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值