发布时间:2026/8/10 19:00:17
Hickory选择器完全攻略:掌握CSS风格DOM节点查询技巧 Hickory选择器完全攻略掌握CSS风格DOM节点查询技巧【免费下载链接】hickoryHTML as data项目地址: https://gitcode.com/gh_mirrors/hic/hickoryHickory是一个强大的HTML解析与处理库它提供了类似CSS选择器的API让开发者能够以声明式方式查询和操作HTML文档。本文将详细介绍Hickory选择器的核心功能、使用方法和最佳实践帮助你轻松掌握这一高效的DOM节点查询工具。快速入门Hickory选择器基础Hickory选择器模块位于src/cljc/hickory/select.cljc它实现了大部分CSS选择器功能并提供了Clojure风格的API。使用Hickory选择器通常分为三个步骤解析HTML使用hickory/parse将HTML字符串转换为Hickory数据结构创建选择器使用选择器函数如tag、id、class等组合成查询条件执行查询使用select/select函数应用选择器并获取结果以下是一个简单示例演示如何选择所有div元素(require [hickory.core :as hickory] [hickory.select :as select]) (let [html divfoo/divdivbar/div htree (hickory/as-hickory (hickory/parse html))] (select/select (select/tag :div) htree))核心选择器详解元素选择器精准定位标签tag选择器用于匹配指定标签名的元素支持字符串或关键字参数且不区分大小写;; 匹配所有p标签 (select/tag :p) (select/tag P) ; 同样有效在测试文件test/cljc/hickory/test/select.cljc中我们可以看到tag选择器的实际应用;; 选择所有h1标签 (let [selection (select/select (select/tag h1) htree)] (is (and ( 1 (count selection)) ( :h1 (- selection first :tag)))))ID选择器唯一元素定位id选择器通过元素的id属性进行精确匹配同样不区分大小写;; 匹配id为user-profile的元素 (select/id user-profile) (select/id :user-profile) ; 关键字形式也支持类选择器样式类匹配class选择器用于匹配具有指定CSS类的元素;; 匹配所有包含active类的元素 (select/class active)Hickory会自动解析class属性中的多个类名因此以下HTML元素可以被(select/class cool)匹配div classaclass bclass cool.../div属性选择器灵活的属性匹配attr选择器提供了强大的属性匹配能力支持存在性检查和值匹配;; 匹配所有具有disabled属性的元素 (select/attr :disabled) ;; 匹配href属性值为https://example.com的元素 (select/attr :href #( % https://example.com)) ;; 匹配data-role属性值以button-开头的元素 (select/attr :data-role #(string/starts-with? % button-))组合选择器构建复杂查询后代选择器层级关系匹配descendant选择器用于匹配某个元素的后代元素无论中间隔多少层级;; 匹配div内所有的span元素 (select/descendant (select/tag :div) (select/tag :span))与CSS中的div span选择器等效它会匹配以下结构中的所有spandiv span直接子元素/span pspan间接子元素/span/p /div子选择器直接层级匹配child选择器仅匹配直接子元素与CSS中的运算符类似;; 仅匹配div的直接子元素中的span (select/child (select/tag :div) (select/tag :span))这个选择器不会匹配上例中p内的span元素。相邻兄弟选择器紧接其后的元素follow-adjacent选择器匹配紧随目标元素之后的兄弟元素;; 匹配div后面紧接的p元素 (select/follow-adjacent (select/tag :div) (select/tag :p))等效于CSS中的div p选择器。通用兄弟选择器后续所有兄弟follow选择器匹配目标元素之后的所有兄弟元素无论是否紧接;; 匹配div之后的所有p兄弟元素 (select/follow (select/tag :div) (select/tag :p))等效于CSS中的div ~ p选择器。伪类选择器高级匹配逻辑位置伪类nth-child系列Hickory提供了丰富的位置伪类选择器用于按位置选择元素;; 选择第2个子元素 (select/nth-child 2) ;; 选择奇数位置的子元素 (select/nth-child :odd) ;; 选择偶数位置的子元素 (select/nth-child :even) ;; 选择倒数第3个子元素 (select/nth-last-child 3)在测试文件中我们可以看到这些选择器的实际应用;; 选择偶数位置的元素 (let [selection (select/select (select/and (select/node-type :element) (select/nth-child :even)) htree)] (is (and ( 4 (count selection)) ( :element (- selection first :type)))))逻辑组合and、or、notHickory提供了逻辑组合选择器用于构建复杂条件;; 匹配class为active且id为menu的div元素 (select/and (select/tag :div) (select/class active) (select/id menu)) ;; 匹配div或span元素 (select/or (select/tag :div) (select/tag :span)) ;; 匹配不是p元素的所有元素 (select/not (select/tag :p))实战技巧组合使用选择器复杂查询示例结合多种选择器可以构建强大的查询逻辑。例如选择所有包含item类且data-status属性为completed的div元素这些元素是ul的直接子元素(select/child (select/tag :ul) (select/and (select/tag :div) (select/class item) (select/attr :data-status #( % completed))))性能优化建议从具体到抽象优先使用id、tag等高效选择器再添加类和属性条件限制范围使用child而非descendant减少匹配范围组合条件使用and尽早排除不匹配元素总结Hickory选择器的优势Hickory选择器为Clojure开发者提供了强大而灵活的HTML查询能力其主要优势包括CSS兼容性支持大部分CSS选择器语法降低学习成本函数式API符合Clojure风格支持组合和高阶函数跨平台在Clojure、ClojureScript中均可使用精确控制提供比CSS更细粒度的控制选项通过本文介绍的选择器功能你可以轻松处理各种HTML文档查询需求。要深入了解更多选择器和高级用法请参考Hickory源代码中的src/cljc/hickory/select.cljc文件和测试用例test/cljc/hickory/test/select.cljc。开始使用Hickory选择器体验函数式HTML处理的强大魅力吧【免费下载链接】hickoryHTML as data项目地址: https://gitcode.com/gh_mirrors/hic/hickory创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/8/10 18:55:17

使用CS Roofline Toolkit测量带宽

使用CS Roofline Toolkit测量带宽 工程下载:使用CS Roofline Toolkit测量带宽-案例工程文件,也可以按照下面的说明使用git clone下载 目录使用CS Roofline Toolkit测量带宽0、Roofline模型理解1、CS Roofline Toolkit下载1.1、设置网络1.2、git clone下…

2026/8/10 20:05:20

openMind/yolov8_ms训练秘籍:超参数调优与COCO数据集实战

openMind/yolov8_ms训练秘籍:超参数调优与COCO数据集实战 【免费下载链接】yolov8_ms YOLOv8 is designed to be fast, accurate, and easy to use, making it an excellent choice for a wide range of object detection and tracking, instance segmentation, ima…

2026/8/10 20:05:20

Windows窗口管理终极指南:5分钟用FancyZones打造高效工作区

Windows窗口管理终极指南:5分钟用FancyZones打造高效工作区 【免费下载链接】PowerToys Microsoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows 项目地址: https://gitcode.com/GitHub_Trending/po/Powe…

2026/8/10 20:05:20

如何免费获取通达信实时行情数据:MOOTDX完整使用指南

如何免费获取通达信实时行情数据:MOOTDX完整使用指南 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 想要用Python进行量化交易,却苦于金融数据接口昂贵且复杂?…

2026/8/10 20:05:20

timm库快速上手ViT-L-16-SigLIP-256:图像特征提取完整指南

timm库快速上手ViT-L-16-SigLIP-256:图像特征提取完整指南 【免费下载链接】ViT-L-16-SigLIP-256 项目地址: https://ai.gitcode.com/hf_mirrors/timm/ViT-L-16-SigLIP-256 ViT-L-16-SigLIP-256是一款基于Sigmoid损失函数的语言-图像预训练模型,…

2026/8/10 20:00:20

CC Switch深度链接:10秒搞定AI配置的终极秘籍

CC Switch深度链接:10秒搞定AI配置的终极秘籍 【免费下载链接】cc-switch A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io 项目地址: https://…

2026/8/9 0:01:56

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 5:09:58

当 LLM 遇见大文档:主流开源项目如何处理上下文超限

从 Agentic Loop 到 Repo Map,七种策略与六类陷阱引言:128K vs 10MB 的硬冲突 2026 年的 LLM 上下文窗口已达到 128K ~ 1M token(≈ 0.5MB ~ 4MB 文本),但 LLM 想要处理的真实数据规模远远超过这个量级:真实…

2026/8/10 0:04:00

# AI视频生成2026:多模态控制与工程化落地的技术跃迁

## AI视频生成2026:多模态控制与工程化落地的技术跃迁### 背景:从"抽卡"到"导演"的范式转移2024年,Sora的问世让AI视频生成首次进入公众视野,但彼时的技术被开发者戏称为"抽卡"——输入一段Prompt&…

2026/8/10 0:04:00

2026年五大AI编码CLI工具深度横评:从原理到实战选型指南

1. 项目概述:为什么我们需要对比AI编码CLI工具?如果你和我一样,每天有超过一半的时间是在终端里度过的,那么“效率”就是你最核心的追求。从最初的代码补全插件,到集成在IDE里的智能助手,再到如今能直接在命…

2026/8/10 11:20:30

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/10 11:20:30

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/9 15:24:19

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…