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。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值