接听了。用户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())
})但这不管用。(答案如下。)
发布于 2015-01-14 00:19:56
这是我对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())
})https://stackoverflow.com/questions/27933866
复制相似问题