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
但这似乎至少可以说是笨拙的。
理想情况下,我想:接受输入,操作或删除在其中找到的节点,并将结果写回字符串,即使结果是不完整的文档。