-
Notifications
You must be signed in to change notification settings - Fork 26
/
goquery.go
63 lines (43 loc) · 1 KB
/
goquery.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package main
import (
"fmt"
"github.com/PuerkitoBio/goquery"
"log"
"reflect"
"strings"
)
func main() {
html := `
<html>
<div> <span>13</span> </div>
<div> <span>12</span> </div>
<div> <span>11</span> </div>
<div> <span>10</span> </div>
</html>
`
doc, err := goquery.NewDocumentFromReader(strings.NewReader(html))
if err != nil {
log.Fatal(err)
}
doc.Find("html div").Each(func(i int, selection *goquery.Selection) {
//fmt.Println(*selection)
//t := reflect.TypeOf(*selection)
//v := reflect.ValueOf(*selection)
//for k := 0; k < t.NumField(); k++ {
// //fmt.Printf("%s -- %v \n", t.Field(k).Name, v.Field(k))
//
// fmt.Println(v.Field(k))
//}
//fmt.Println()
for _, node := range selection.ToggleClass().First().Nodes {
//fmt.Println(*node)
t := reflect.TypeOf(*node)
v := reflect.ValueOf(*node)
for k := 0; k < t.NumField(); k++ {
//fmt.Printf("%s -- %v \n", t.Field(k).Name, v.Field(k))
fmt.Println(v.Field(k))
}
}
})
//fmt.Println(s)
}