Chrome/Edge XPath 提取 HTML 上下文节点

在控制台 console 输入下述函数,即可通过 xpath 提取 $x(...) 的上下文

const xpath = function (xpath, context=document) {
  var nodes = [];
  try {
    var doc = (context && context.ownerDocument) || window.document;
    var results = doc.evaluate(xpath, context || doc, null, XPathResult.ANY_TYPE, null);
    var node;

    while (node = results.iterateNext()) {
      nodes.push(node);
    }
  } catch (e) {
    throw e;
  }
  return nodes;
}

示例

$x('//a[contains(@class,"meeting-list-item")]').map(
	x => console.log(
		xpath('.//div[contains(@class, "content")]/text()', x)[0].nodeValue
		,xpath('./@href', x)[0].nodeValue)
)

console

  • 参考
    • https://blog.csdn.net/zhangzeyuaaa/article/details/122192065
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
生成XPath: 如果你有一个XML节点,可以使用getNodePath()方法来获取该节点XPath。 例如,假设你有一个org.w3c.dom.Node对象,通过调用getNodePath()方法,你可以获取该节点XPath: Node node = ...; String xpath = ((org.apache.xpath.Node) node).getNodePath(); 获取XPath: 如果你已经知道了要获取的节点XPath,可以使用javax.xml.xpath包中的XPath API来获取该节点。 例如,假设你有以下XML文档: <?xml version="1.0" encoding="UTF-8"?> <root> <element1>value1</element1> <element2> <subelement1>value2</subelement1> <subelement2>value3</subelement2> </element2> </root> 要获取根节点XPath,你可以使用如下代码: DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(new File("path/to/xml/file.xml")); XPathFactory xPathfactory = XPathFactory.newInstance(); XPath xpath = xPathfactory.newXPath(); String rootNodeXPath = "/"; Node rootNode = (Node) xpath.evaluate(rootNodeXPath, doc, XPathConstants.NODE); 要获取子节点element1的XPath,你可以使用如下代码: String element1XPath = "/root/element1"; Node element1 = (Node) xpath.evaluate(element1XPath, doc, XPathConstants.NODE); 要获取子节点element2下的子节点subelement1的XPath,你可以使用如下代码: String subelement1XPath = "/root/element2/subelement1"; Node subelement1 = (Node) xpath.evaluate(subelement1XPath, doc, XPathConstants.NODE);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈挨踢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值