ruby - nokogiri 怎么获取一个 html 元素自身的 text 文本但不包含起子元素的 text 文本?

查看:228
本文介绍了ruby - nokogiri 怎么获取一个 html 元素自身的 text 文本但不包含起子元素的 text 文本?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

<body>
    <div id='div1'>111</div>
    <div id='div2'>222
        <div id='div3'>333
            <div id='div4'>444</div>
        </div>
        <div id='div33'>bbb</div>
    </div>
</body>

比如:
div2元素自身的text为222.但使用nokogiri获取div2的text文本时,会包含div2的各级子元素的文本,比如div3和div4的text文本也包含在内。
而我只想要div2自身的text文本,即只要222。

require 'nokogiri'
html = Nokogiri::HTML(open 'test.html')
div2_obj = html.xpath("//*[@id='div2']")
div2_text = div2_obj.to_s #这样会获取到div2各级子元素的文本

那么怎么样才能只获取到div2自身的text文本(即只要222,不要333 444 bbb)呢?

解决方案

div2_obj.children[0].text就是div_obj自身的text文本,也就是222,不包含333 444 bbb

这篇关于ruby - nokogiri 怎么获取一个 html 元素自身的 text 文本但不包含起子元素的 text 文本?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆