从html.Node中检索原始数据

时间:2018-02-04 17:48:29

标签: go

我希望将html.Node的内容作为字符串。

示例:

<div id="my-node">
  <p>First paragraph</p>
  <p>Second paragraph</p>
</div>

给定myNode := html.Node("#my-node")(伪代码),我想将整个上面的html检索为字符串。缩进并不重要。

我在互联网上找不到任何东西,除了迭代节点的内容 - myNode.NextSibling,但它过于复杂,我很确定必须有更简单的方法。

更新: 我正在考虑golang.org/x/net/html包裹。

1 个答案:

答案 0 :(得分:1)

我理解你的意思,我在测试中使用了很多。

您需要的内容已经在同一个x/net/html包中 - 您可以Render Nodebytes.Buffer然后从中获取字符串:

var b bytes.Buffer
err := html.Render(&b, node)
return b.String()

请阅读文档如何尽最大努力完成渲染 - 但它可能适合您。

PS。您可以参考我在一个更实际的项目中使用它的方式: https://github.com/wkhere/htmlx/blob/master/finder.go#L32-L39 https://github.com/wkhere/htmlx/blob/master/finder_test.go#L73