如何使用goquery获取DOM的类型名称?

时间:2015-10-17 06:19:16

标签: dom go goquery

我希望使用goquery获取DOM的类型名称,如'a',img','tr','td','center'。 我该怎么办?

package main

import (
    "github.com/PuerkitoBio/goquery"
)

func main() {
    doc, _ := goquery.NewDocument("https://news.ycombinator.com/")
    doc.Find("html body").Each(func(_ int, s *goquery.Selection) {
        // for debug.
        println(s.Size()) // return 1

        // I expect '<center>' on this URL, but I can't get it's name.
        // println(s.First().xxx) // ?
    })
}

1 个答案:

答案 0 :(得分:4)

*Selection.First为您提供了另一个*Selection,其中包含一片*html.Node,其Data字段包含:

  

元素节点的标签名称,文本内容

类似的东西:

package main

import (
    "github.com/PuerkitoBio/goquery"
    "golang.org/x/net/html"
)

func main() {
    doc, _ := goquery.NewDocument("https://news.ycombinator.com/")
    doc.Find("html body").Each(func(_ int, s *goquery.Selection) {
        // for debug.
        println(s.Size()) // return 1

        if len(s.Nodes) > 0 && s.Nodes[0].Type == html.ElementNode {
            println(s.Nodes[0].Data)
        }
    })
}