你正在訪問的內容是外部程式的映像位址,僅用於使用者加速訪問,本站無法保證其可靠性。當前的連結位址(單點即可複製)為 https://greasyfork.org.cn/zh-CN/scripts/559142-xpath-selector,源站連結 點此以跳轉

DXPath Selector 一个 XPath 选择器库,快速获取节点数据

XPath Selector -- 一个 XPath 选择器库,快速获取节点数据

当前为 2025-12-17 提交的版本,查看 最新版本

此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.org.cn/scripts/559142/1715276/DXPath%20Selector%20%E4%B8%80%E4%B8%AA%20XPath%20%E9%80%89%E6%8B%A9%E5%99%A8%E5%BA%93%EF%BC%8C%E5%BF%AB%E9%80%9F%E8%8E%B7%E5%8F%96%E8%8A%82%E7%82%B9%E6%95%B0%E6%8D%AE.js

作者
xiaohuohumax
版本
1.0.2
创建于
2025-12-16
更新于
2025-12-17
大小
478.0 KB
许可证
MIT

XPath Selector

一个 XPath 选择器库,快速获取节点数据

项目地址 开源协议 更新日志 问题反馈

📖 使用方式

✍ 添加元数据

// @require      https://**/xpath-selector.js?*

📥 参数说明

Options 参数说明:

参数名 类型 是否必填 默认值 说明
expression string 要获取的节点的 XPath 表达式
returnType string 获取结果的类型,可选值:stringstringsnumbernumbersbooleannodesfirst-nodemaparrayall-results
node Node document 要搜索的节点

📦 使用示例

<!DOCTYPE html>
<html lang="en" charset="UTF-8">
<head>
    <title>hello world</title>
</head>
<body>
    <p>hello</p>
    <p>world</p>
    <a href="#">hello</a>
    <a href="#">world</a>
    <section>
        <!-- section内容 -->
    </section>
</body>
</html>

获取 title 节点的文本内容

const title = xpathSelector({
  expression: '//title/text()',
  returnType: 'string'
})
console.log(title) // hello world

获取所有 p 节点的文本内容

const pList = xpathSelector({
  expression: '//p/text()',
  returnType: 'strings'
})
console.log(pList) // ['hello', 'world']

统计所有 a 节点的个数

const aCount = xpathSelector({
  expression: 'count(//a)',
  returnType: 'number'
})
console.log(aCount) // 2

判断是否存在 section 节点

const hasSection = xpathSelector({
  expression: 'boolean(//section)',
  returnType: 'boolean'
})
console.log(hasSection) // true

获取全部的 a 节点

const aList = xpathSelector({
  expression: '//a',
  returnType: 'nodes'
})
console.log(aList) // [<a>hello</a>, <a>world</a>]

获取第一个 a 节点

const firstA = xpathSelector({
  expression: '//a',
  returnType: 'first-node'
})
console.log(firstA) // <a>hello</a>

获取 html 节点的全部属性

const htmlAttributes = xpathSelector({
  expression: `map:merge(
    for $attr in //html/@*
    return map:entry(local-name($attr), string($attr))
  )`,
  returnType: 'map'
})
console.log(htmlAttributes) // {lang: "en", charset: "UTF-8"}

🧩 依赖项目

🚨 免责声明

  • 本脚本仅供学习交流使用
  • 请勿用于任何商业用途
  • 使用本脚本产生的任何后果由用户自行承担

♻ 其他说明

GreasyFork 或者 ScriptCat 回复不及时,问题反馈推荐直接在 Github 提 Issue。

如果觉得本脚本对你有帮助,欢迎点个 ⭐ Star 支持一下!