html 无需序列怎么去除,如何让Nokogiri inner_HTML对象忽略/删除转义序列

钻入包含所需文本的最近节点非常重要。试想一下:

require 'nokogiri'

doc = Nokogiri::HTML(<

foo

EOT

doc.at('body').inner_html # => "\n

foo

\n "

doc.at('body').text # => "\n foo\n "

doc.at('p').inner_html # => "foo"

doc.at('p').text # => "foo"

at,at_css和at_xpath返回节点/ XML ::元素。 search,css和xpath返回一个NodeSet。有一个节点或节点集看时text或inner_html回报如何信息有很大的不同:

doc = Nokogiri::HTML(<

foo

bar

EOT

doc.at('p') # => #<:xml::element:0x3fd635cf36f4 name="p" children="[#<Nokogiri::XML::Text:0x3fd635cf3514">]>

doc.search('p') # => [#<:xml::element:0x3fd635cf36f4 name="p" children="[#<Nokogiri::XML::Text:0x3fd635cf3514">]>, #<:xml::element:0x3fd635cf32bc name="p" children="[#<Nokogiri::XML::Text:0x3fd635cf30dc">]>]

doc.at('p').class # => Nokogiri::XML::Element

doc.search('p').class # => Nokogiri::XML::NodeSet

doc.at('p').text # => "foo"

doc.search('p').text # => "foobar"

注意使用search返回一个节点集和text返回节点的文本连接在一起。这很少是你想要的。

还要注意引入nokogiri是足够聪明,想出一个选择是CSS或XPath的99%的时间,所以使用任何类型选择的一般search和at非常方便。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值