0

我有一些 HTML,例如:

<span class="foo">foo bar <a href="http://example.com">example</a> baz</span>

我想把它变成一个字符串,如:

foo bar http://example.com baz

我正在使用 Nokogiri,我有类似的东西:

doc.css('.foo').each do |message|
  message.css('a').map {|link| link.replace(link['href'])}
  message.xpath('.//text()').map do |m|
    p m.text
  end
end

但这似乎表明:

foo bar
http://example.com
baz

我究竟做错了什么?

4

1 回答 1

1

p m.text将在每行文本后插入一个换行符,但文档本身没有任何换行符。简单地打印出来message.text,你应该得到你想要的。

require 'rubygems'
require 'nokogiri'

doc = Nokogiri::HTML.fragment(DATA.read)
doc.css('.foo').each do |message|
  message.css('a').each {|link| link.replace(link['href'])}
  puts message.text # prints "foo bar http://example.com baz"
end

__END__
<span class="foo">foo bar <a href="http://example.com">example</a> baz</span>
于 2012-07-05T18:17:52.230 回答