栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

刮时如何避免加入节点中的所有文本

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

刮时如何避免加入节点中的所有文本

这是一个容易解决的问题,其原因是没有阅读有关

text
在NodeSet和Node(或Element)上使用时的行为的文档。

该节点集文档表示

text
将:

获取所有包含的Node对象的内部文本

我们看到的是:

doc = Nokogiri::HTML(<<EOT)<html>  <body>    <p>foo</p>    <p>bar</p>    <p>baz</p>  </body></html>EOTdoc.search('p').text # => "foobarbaz"

因为:

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

相反,我们要获取每个Node并提取其文本:

doc.search('p').first.class # => Nokogiri::XML::Elementdoc.search('p').first.text # => "foo"

可以使用

map

doc.search('p').map { |node| node.text } # => ["foo", "bar", "baz"]

Ruby允许我们使用以下代码更简洁地编写代码:

doc.search('p').map(&:text) # => ["foo", "bar", "baz"]

无论我们使用的是HTML还是XML,同样的事情也适用,因为HTML是XML的一种更为宽松的版本。

节点具有几种获取其嵌入文本的别名方法。从文档中:

#content ⇒ Object

也称为:

text
inner_text

返回此节点的内容。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/614801.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号