登录
首页 >  Golang >  Go问答

如何使用 goquery 检索子元素的 HTML 内容?

来源:stackoverflow

时间:2024-03-03 09:39:26 481浏览 收藏

本篇文章向大家介绍《如何使用 goquery 检索子元素的 HTML 内容?》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

问题内容

为什么以下测试失败?

func testgetfirstelementhtml(t *testing.t) {
    test := `

my paragraph

` doc, _ := goquery.newdocumentfromreader(strings.newreader(test)) var childrenhtml []string doc.find("speak").children().each(func(i int, s *goquery.selection) { html, _ := s.html() childrenhtml = append(childrenhtml, html) }) if childrenhtml[0] != "

my paragraph

" { t.fatalf("first element html is not valid: '%s'", childrenhtml[0]) } }

这是测试结果:

=== FAIL: . TestGetFirstElementHtml (0.00s)
    main_test.go:45: First element html is not valid: 'My paragraph'

换句话说,鉴于我无法预测该子元素是什么类型,如何检索第一个子元素的完整 html?


解决方案


你想要的实际上是外部html,你可以通过调用goquery.OuterHTML函数来获取它。根据文档:

func outerhtml(s *selection) (string, error)

outerhtml 返回第一个项目的外部 html 呈现 选择 - 即包含第一个元素的标签和 属性。

与 innerhtml 不同,这是一个函数而不是方法 选择,因为这不是 jquery 方法(在 javascript-land 中, 这是 dom 提供的属性)。

所以只需将行更改为:

html, _ := goquery.OuterHTML(s)

今天关于《如何使用 goquery 检索子元素的 HTML 内容?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>