使用实验code.google.com/p/go.net/html包,我们可以ParseFragment用来解析 HTML 文档的某些子部分。
像这样:
var s = `
<option id="foo">first</option>
<option Class="tester">second</option>
<option>third</option>
`
doc, err := html.ParseFragment(strings.NewReader(s), &html.Node{
Type: html.ElementNode,
Data: "body",
DataAtom: atom.Body,
})
这适用于大多数元素。但是当某些元素位于 HTML 的根位置时,它似乎不起作用,例如tbody, tr, and td(也许还有其他元素,不确定)。它只是忽略标签,只提供文本内容。
这可以通过提供语义正确的父级而不是 来补救atom.Body,但这需要我们提前知道 HTML 将是什么。
我希望有一个像 的通用根atom.DocumentFragment,但我没有看到。那么是否有某种方法可以使用它来处理任何任意 HTML 片段?
拉丁的传说
相关分类