有点像j的东西,只在围棋中。
Posted
tags:
中文标题:有点像j的东西,只在围棋中。 原文标题:A little like that j-thing, only in Go. 项目评级:Star:12500 Fork:881 下载地址:https://github.com/PuerkitoBio/goquery 详情介绍goquery-有点像j的东西,只是在Go中
goquery为Go语言带来了类似jQuery的语法和一组功能。它基于Go的net/html包和CSS Selector库cascadia。由于net/html解析器返回节点,而不是一个功能齐全的DOM树,jQuery的有状态操作函数(如height()、css()、detachment())被省略了。
此外,由于net/html解析器需要UTF-8编码,goquery也是如此:调用者有责任确保源文档提供UTF-8编码的html。请参阅wiki以获取各种选项。
从语法角度来看,它尽可能接近jQuery,尽可能使用相同的函数名,以及温暖而模糊的可链接接口。jQuery是一个非常流行的库,我觉得编写一个类似的HTML操作库最好遵循它的API,而不是重新开始(本着Gofmt
包的精神),尽管它的一些方法不够直观(看看你,index()…)。
目录
安装
请注意,由于net/html依赖性,goquery需要Go1.1+,并在Go1.7+上进行了测试。
$ go get github.com/PuerkitoBio/goquery
(可选)要运行单元测试:
$ cd $GOPATH/src/github.com/PuerkitoBio/goquery
$ go test
(可选)要运行基准测试(警告:它会运行几分钟):
$ cd $GOPATH/src/github.com/PuerkitoBio/goquery
$ go test -bench=".*"
变更日志
注意,goquery的API现在是稳定的,不会中断。
API
goquery公开了Document
和Selection
两个结构,以及Matcher
接口。与jQuery不同,jQuery作为DOM文档的一部分加载,因此对其包含的文档进行操作,goquery不知道要对哪个HTML文档进行操作。所以需要说明,这就是Document
类型的作用。它将根文档节点作为要操作的初始“选择”值。
jQuery通常对同一函数有许多变体(无参数、选择器字符串参数、jQuery对象参数、DOM元素参数等)。与其将goquery中的相同功能公开为具有可变空接口参数的单个方法,不如按照以下命名约定使用静态类型签名:
不在jQuery中但在Go中有用的实用函数被实现为函数(以*Selection
为参数),以避免*Selection
的方法上潜在的命名冲突(保留用于jQuery等效行为)。
完整的软件包参考文档可以在这里找到。
请注意,Cascadia的选择器不一定与jQuery(Sizzle)所有支持的选择器匹配。详见cascadia项目。无效的选择器字符串编译为与任何节点都不匹配的Matcher
。将选择器字符串作为参数的各种函数的行为来源于该事实,例如(其中~
是无效的选择器字符串):
示例
查看wiki中的一些提示和技巧。
改编自example_test.go:
相关项目
支持
您可以通过多种方式支持该项目:
许可证
BSD 3条款许可证,与Go语言相同。卡斯卡迪亚的执照在这里。