gitee.com/ks-custle/core-gm@v0.0.0-20230922171213-b83bdd97b62c/net/html/example_test.go (about)

     1  // Copyright 2012 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // This example demonstrates parsing HTML data and walking the resulting tree.
     6  package html_test
     7  
     8  import (
     9  	"fmt"
    10  	"log"
    11  	"strings"
    12  
    13  	"gitee.com/ks-custle/core-gm/net/html"
    14  )
    15  
    16  func ExampleParse() {
    17  	s := `<p>Links:</p><ul><li><a href="foo">Foo</a><li><a href="/bar/baz">BarBaz</a></ul>`
    18  	doc, err := html.Parse(strings.NewReader(s))
    19  	if err != nil {
    20  		log.Fatal(err)
    21  	}
    22  	var f func(*html.Node)
    23  	f = func(n *html.Node) {
    24  		if n.Type == html.ElementNode && n.Data == "a" {
    25  			for _, a := range n.Attr {
    26  				if a.Key == "href" {
    27  					fmt.Println(a.Val)
    28  					break
    29  				}
    30  			}
    31  		}
    32  		for c := n.FirstChild; c != nil; c = c.NextSibling {
    33  			f(c)
    34  		}
    35  	}
    36  	f(doc)
    37  	// Output:
    38  	// foo
    39  	// /bar/baz
    40  }