为了账号安全,请及时绑定邮箱和手机立即绑定

使用 goquery 查找值包含空格的类

使用 goquery 查找值包含空格的类

Go
月关宝盒 2021-09-10 21:00:00
回答。用户PuerkitoBio帮我解决了他的问题goquery,我相信我不会是唯一想知道如何做到这一点的人。(我可以在两天内将此问题标记为“已回答”)当goquery用于查找 html 标签类时,当类包含空格时我遇到了问题。下面是一个例子:package mainimport (    "fmt"    "github.com/PuerkitoBio/goquery"    "strings")func main() {    html_code := strings.NewReader(`<html>    <body>        <h1>            <span class="text title">Go </span>        </h1>        <p>            <span class="text">totally </span>            <span class="post">kicks </span>        </p>        <p>            <span class="text">hacks </span>        </p>    </body><html>    `)    doc, _ := goquery.NewDocumentFromReader(html_code)}如果我想找到 class "text title",我想我会这样做:doc.Find(".text title").Each(func(i int, s *goquery.Selection) {    class, _ := s.Attr("class")    fmt.Println(class, s.Text())})但这不起作用。(答案在下面。)
查看完整描述

1 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

这是我对 HTML 理解的问题。里面的空格class="text title"显示class有两个值:text和title。为了使用 找到一个类的多个属性goquery,我需要将它们并排放置(没有空格)并在它们前面加上.. 像这样:


doc.Find(".text.title").Each(func(i int, s *goquery.Selection) {

    class, _ := s.Attr("class")

    fmt.Println(class, s.Text())

})

或者,如果我曾经想找到只用值类title,我这样做:


doc.Find(".title").Each(func(i int, s *goquery.Selection) {

    class, _ := s.Attr("class")

    fmt.Println(class, s.Text())

})


查看完整回答
反对 回复 2021-09-10
  • 1 回答
  • 0 关注
  • 303 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信