2009-10-18 2 views

ответ

1

Попробуйте

doc = Nokogiri::HTML(open(url)).xpath("//*") 
.xpath("//*[br and text()[string-length(normalize-space()) != 0]]") 
.wrap("<span></span>") 

puts doc 

Какую XPath делает это получает не пустые текстовые узлы. Которые по самому своему определению не содержат никакой разметки.

Напротив, мой XPath извлекает любой узел, содержащий хотя бы один <br> и по меньшей мере один непустой текстовый узел.