package main
import (
"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
但是,至少可以这样说,这似乎很糊涂。
理想情况下,我希望:接受输入,操纵或删除其中找到的节点,并将结果写回字符串,即使结果是不完整的文档也是如此。
慕运维8079593
相关分类