Я использую Nokogiri (v 1.6.6) в Ruby (v 2.2), чтобы очистить данные из файлов HTML. Целевые данные находятся в <p>
элементах, как показано ниже. Я могу чавкать все текстовое содержимое с:Извлечь текст между узлами с помощью Nokogiri в скрипте Ruby
require 'nokogiri'
doc = Nokogiri::HTML(DATA.read)
doc.css("div.listing > p").each do |p|
puts p.text
end
__END__
<div class="listing">
<p><span>1</span> Details1 <span>info1</span></p>
<p><span>2</span> Details2 <span>info2</span></p>
<p><span>3</span> Details3 <span>info3</span></p>
</div>
который возвращает:
1 Details1 info1
2 Details2 info2
3 Details3 info3
В то время как я могу легко разобрать текст внутри тегов <span>
, я не понял, как получите текст «Подробности #» между ними. Это достаточно легко сделать с помощью регулярного выражения, но я хотел бы посмотреть, есть ли способ сделать это прямо из Nokigiri. Цель состоит в том, чтобы вернуть:
Details1
Details2
Details3
Возможно ли использование встроенной функциональности Nokogiri?