package mainimport ( "bytes" "code.google.com/p/go.net/html" "fmt" "log" "strings")func main() { s := "Blah. <b>Blah.</b> Blah." n, err := html.Parse(strings.NewReader(s)) if err != nil { log.Fatalf("Parse error: %s", err) } var buf bytes.Buffer if err := html.Render(&buf, n); err != nil { log.Fatalf("Render error: %s", err) } fmt.Println(buf.String())}输出:<html><head></head><body>Blah. <b>Blah.</b> Blah.</body></html>有没有办法阻止html.Parse从制作出文档片段(即避免添加<html>,<body>等等)?我知道,html.ParseFragment但似乎表现出相同的行为。您可以通过使用父元素包装要解析的文本来解决该问题,例如<span>执行以下操作:n = n.FirstChild.LastChild.FirstChild但是,至少可以这样说,这似乎很糊涂。理想情况下,我希望:接受输入,操纵或删除其中找到的节点,并将结果写回字符串,即使结果是不完整的文档也是如此。
2 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
您需要http://godoc.org/code.google.com/p/go.net/html#ParseFragment。传递一个假的Body元素作为您的上下文,该片段将作为片段中元素的一部分返回。
您可以在Partial *函数中的go-html-transform的go.net/html包装程序包中看到一个示例。https://code.google.com/p/go-html-transform/source/browse/h5/h5.go#32
- 2 回答
- 0 关注
- 199 浏览
添加回答
举报
0/150
提交
取消