登录
首页 >  Golang >  Go问答

goquery 过滤器没有产生预期的输出

来源:stackoverflow

时间:2024-02-18 15:09:22 302浏览 收藏

大家好,我们又见面了啊~本文《goquery 过滤器没有产生预期的输出》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

神奇的互联网,

我正在尝试使用“github.com/puerkitobio/goquery”从 html 字符串中过滤元素。不幸的是,过滤函数没有返回预期的结果。我本来希望得到所有文章的列表,但结果却是……什么也没有。

package main

import (
    "fmt"
    "os"
    "strings"

    "github.com/PuerkitoBio/goquery"
)

var html = `

Article 1

Text for article #1

Article 2

Text for article #2

` func main() { qHtml, err := goquery.NewDocumentFromReader(strings.NewReader(html)) if err != nil { panic(err) } articles := qHtml.Filter(`article`) fmt.Println(articles.Nodes) goquery.Render(os.Stdout, articles) }

正确答案


您正在尝试过滤空的选择。

据我所知,您在问题中尝试执行的操作,只需将 filter 替换为 find 即可。所以在你的情况下它将是:

articles := qhtml.find("article")

一旦您选择了包含元素的内容,您就可以使用 filter。因此,例如,要获取第二篇文章,您可以执行以下操作:

articles := qhtml.find("article").filter(":nth-child(2)")

要了解有关 filter 的更多信息,请查看以下资源:

ps:您还可以将其组合在单个选择器中以 查找 特定文章

articles := qHtml.Find("article:nth-child(2)")

今天关于《goquery 过滤器没有产生预期的输出》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>