ruby - Nokogiri::HTML#content 中 HTML 元素之间的空格

标签 ruby nokogiri

当我运行它时

Nokogiri::HTML('<div class="content"><p>Hello</p><p>Good Sir</p></div>').content

我明白了

"HelloGood Sir"

有没有办法通过 Nokogiri 的 API 获取以下信息?

"Hello Good Sir"

最佳答案

require 'nokogiri'

doc = Nokogiri::HTML('<div class="content"><p>Hello</p><p>Good Sir</p></div>')

# below will fetch all text nodes irrespective of any tag,from the current document.
doc.xpath("//text()").map(&:text)
# => ["Hello", "Good Sir"]

doc.xpath("//text()").map(&:text).join(" ")
# => "Hello Good Sir"

# below will fetch all text nodes which are wrapped inside the p tag,
# from the current document.
doc.xpath("//p").map(&:text)
# => ["Hello", "Good Sir"]

doc.xpath("//p").map(&:text).join(" ")
# => "Hello Good Sir"

关于ruby - Nokogiri::HTML#content 中 HTML 元素之间的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19935960/

相关文章:

ruby-on-rails - 您的 Ruby 版本是 2.3.1,但您的 Gemfile 指定为 2.3.1(相同版本)

Ruby Nokogiri 解析 HTML 表格

ruby-on-rails - 如何使用 nokogiri 和 ruby​​zip 编辑 docx

ruby-on-rails - 如何使用 Rails 从网站下载图像?

html - 使用 Nokogiri::HTML 抓取 - 无法从 XPATH 获取文本

ruby-on-rails - 我有两个相互依赖的模型才有效。我如何为他们创建有效的工厂?

ruby-on-rails - Rspec 上的 Redirect_to

ruby - 在 rails 4 中的事件记录上定义 method_missing 抛出 SystemStackError : stack level too deep on attributes

ruby-on-rails - 如何在 ruby​​ 中构建这个 JSON 对象?

ruby - 如何获取 ruby​​ Nokogiri NodeSet 的 inner_html 未转义?