当我运行时
Nokogiri::HTML('<div class="content"><p>Hello</p><p>Good Sir</p></div>').content
我明白了
"HelloGood Sir"
有没有办法通过Nokogiri的API获得以下内容?
"Hello Good Sir"
答案 0 :(得分:6)
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"
答案 1 :(得分:4)
doc = Nokogiri::HTML('<div class="content"><p>Hello</p><p>Good Sir</p></div>')
doc.css('p').map(&:text).join(" ") #=> "Hello Good Sir"