为了账号安全,请及时绑定邮箱和手机立即绑定

从没有子元素的div中获取文本

从没有子元素的div中获取文本

Go
一只斗牛犬 2021-11-08 16:01:14
我试图在goquery. 我不知道如何在丢弃所有其他内容的同时解析字符串“我需要的字符串”。  <div class="outter-class">        <h1 class="inner-class">        The string I need        <span class="other-class" >Some value I don't need</span>        <span class="other-class2" title="sometitle"></span>        </h1>        <div class="other-class3">            <h3>Some heading i don't need</h3>        </div>    </div>我尝试使用类似的东西:https : //stackoverflow.com/a/8851526/989919 通过将其调整为这样的 goquery:test := s.Clone().Children().Empty().End().Text()fmt.Println(test.Text()) 但这不起作用。我从API 中尝试了很多不同的变体,但我无法弄清楚。
查看完整描述

3 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

我让它工作的方式是:


// End() lets us jump back to the h1 selection to get its text

text := doc.Find("h1").Children().Remove().End().Text()

text = strings.TrimSpace(text)

fmt.Println(text)

输出:


我需要的字符串


该代码从 h1 元素中删除子节点(span 元素)以获得正确的输出。可能有更简单的方法来做到这一点,但它有效。:)


查看完整回答
反对 回复 2021-11-08
?
拉丁的传说

TA贡献1789条经验 获得超8个赞

我发现实现此目的的最佳方法:

text := dom.Find(".inner-class").Nodes[0].FirstChild.Data

我花了很多时间在 goquery 下使用 HTML 解析库,所以这对我来说似乎并不难,但对某些人来说可能是这样。


查看完整回答
反对 回复 2021-11-08
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

怎么样:

doc.Find(".outter-class .inner-class").Children().First().Text()


查看完整回答
反对 回复 2021-11-08
  • 3 回答
  • 0 关注
  • 198 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信