1 回答
TA贡献1807条经验 获得超9个赞
如果您想使用您建议的具有奇怪缩进的第二组代码,则解决方案如下:
package main
import (
"fmt"
"log"
"strings"
"golang.org/x/net/html"
)
func main() {
r := strings.NewReader(`<a href="test1.html">1</a><a href="test1.html">1</a><div><a href="test2.html">2</a><a href="test3.html">3</a></div>`)
doc, err := html.Parse(r)
if err != nil {
log.Fatalln(err)
}
indent("", doc)
}
func indent(space string, n *html.Node) {
fmt.Println(space, n.Data)
if n.FirstChild != nil {
indent(space+" ", n.FirstChild)
}
if n.NextSibling != nil {
indent(space, n.NextSibling)
}
}
您只需要删除+" "indent 调用的额外内容,n.NextSibling以便兄弟节点不会比其先前的兄弟节点推得更远。
- 1 回答
- 0 关注
- 142 浏览
添加回答
举报