第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 html 上獲取所有元素名稱(我的錯誤代碼運行循環(huán))

如何在 html 上獲取所有元素名稱(我的錯誤代碼運行循環(huán))

Go
慕無忌1623718 2021-11-15 17:00:51
我想得到一個文檔樹。然后,首先,我顯示所有元素名稱。但是我的代碼運行循環(huán)。我能怎么做?package mainimport (    "github.com/PuerkitoBio/goquery"    "golang.org/x/net/html")func getTagName(s *goquery.Selection) {    for _, n := range s.Nodes {        if n.Type != html.ElementNode {            continue        }        println(n.Data)        getTagName(s.Children())    }}func main() {    doc, _ := goquery.NewDocument("https://news.ycombinator.com/")    doc.Find("html body").Each(func(_ int, s *goquery.Selection) {        getTagName(s)    })}
查看完整描述

1 回答

?
搖曳的薔薇

TA貢獻1793條經(jīng)驗 獲得超6個贊

它似乎適用于此:


package main


import (

    "os"


    "github.com/PuerkitoBio/goquery"

    "golang.org/x/net/html"

)


var areWeLooping = make(map[*goquery.Selection]struct{})


func getTagName(s *goquery.Selection) {

    if _, weAreLooping := areWeLooping[s]; weAreLooping {

        println("loop detected")

        os.Exit(1)

    }


    areWeLooping[s] = struct{}{}


    for _, n := range s.Nodes {

        if n.Type != html.ElementNode {

            continue

        }

        println(n.Data)

    }


    s.Children().Each(func(_ int, s *goquery.Selection) {

        getTagName(s)

    })

}


func main() {

    doc, _ := goquery.NewDocument("https://news.ycombinator.com/")

    doc.Find("html body").Children().Each(func(_ int, s *goquery.Selection) {

        getTagName(s)

    })

}

在getTagName(s.Children())循環(huán)內(nèi)部造成了麻煩。


查看完整回答
反對 回復(fù) 2021-11-15
  • 1 回答
  • 0 關(guān)注
  • 206 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號