【发布时间】:2013-11-12 17:30:54
【问题描述】:
当我运行它时
Nokogiri::HTML('<div class="content"><p>Hello</p><p>Good Sir</p></div>').content
我明白了
"HelloGood Sir"
有没有办法通过 Nokogiri 的 API 获得以下内容?
"Hello Good Sir"
【问题讨论】:
当我运行它时
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"
【讨论】:
就像奥雅纳指出的那样
doc = Nokogiri::HTML('<div class="content"><p>Hello</p><p>Good Sir</p></div>')
doc.css('p').map(&:text).join(" ") #=> "Hello Good Sir"
【讨论】: