html - GoLang - GoQuery HTML 插入失败

标签 html go goquery

我想提取 elementB ,然后在元素 C 之前停止和 D - 即不提取 .text内容elementCelementD .但是,我只知道如何提取整个 div 文本,使用 Contents().Not忽略 elementC ,但是elementD仍然被捕获。

这是我目前使用的代码:

高语:

capturedText := s.Find("div").Contents().Not(".label").Text()

忽略 elementC , 但不是 elementD , 它没有外部标签。

HTML:

<li><span><h2>elementA</h2></span><div>elementB<br><span class="label">elementC</span>elementD</div></li>

如何只捕获 elementB<div> ,而不是 elementCelementD

编辑:

我试过像这样关闭 div 标签:

s.Find(".label").BeforeHtml(`</div>`)

也尝试过:

s.Find(".label").BeforeHtml(`</div><div>`)

并访问第一个 div , 忽略第二个 div现在应该有 elementD与:

jp, _ := s.Find("div").First().Html()

但是,这是行不通的。似乎</div>不能是开放标签 - 它必须是 <div>...</div>正确插入。但这不是我需要的,我只需要 </div></div><div>关闭第一个div正确。

解决这个问题的合适方法是什么?

最佳答案

由于我无法使用“损坏的”节点编辑 HTML,因此我选择了这个:

    s.Find(".label").BeforeHtml(`|_SEPARATOR_|`) // Insert text separator into Html
    preCleanNode := s.Find("div").Contents().Not(".label").Text() //Get Html as Text
    cleanNode := strings.Split(preCleanNode, `|_SEPARATOR_|`) // Split text based on Text Separator
    outputString := cleanNode[0] // Output our wanted text

关于html - GoLang - GoQuery HTML 插入失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42142333/

相关文章:

go - 依赖于 perl & sh 吗?

html - 如何使用 Golang 检索所选 HTML 元素的高度?

html - 如何使用 golang 将 HTML 表格转换为数组

php - PHP 中的数组输入是否保证 POST 中输入的顺序?

html - 转换缩放 css 在 ie8 中不起作用

html - 如何比较golang中html/template中列表的长度?

go - 如何在 Go 中使用反射将结构的 nil 指针设置为结构的零值?

go - 等待所有 goroutine 完成并合并结果

javascript - 导航有一个活跃的类工作

HTML5 最佳实践;部分/标题/旁白/文章元素