gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 01:33:42 25 4
gpt4 key购买 nike

已回答。用户PuerkitoBio帮助我解决了他的 goquery 包,我相信我不会是唯一想知道如何做到这一点的人。 (我可以在两天内将此问题标记为“已回答”)

当使用 goquery 查找 html 标签的类时,当类包含空格时我遇到了问题。这是一个例子:

package main

import (
"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)
}

如果我想找到类 "text title",我想我会这样做:

doc.Find(".text title").Each(func(i int, s *goquery.Selection) {
class, _ := s.Attr("class")
fmt.Println(class, s.Text())
})

但这行不通。 (答案在下方。)

最佳答案

这是我对 HTML 的理解有问题。 class="text title" 中的空格表明 class 有两个值:texttitle。为了使用 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())
})

关于go - 使用goquery查找值包含空格的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27933866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com