Как обернуть HTML-тег без текста тегом <p>с помощью Nokogiri? - PullRequest
4 голосов
/ 20 января 2012

Я должен разобрать документ HTML в разные новые файлы.Проблема в том, что есть текстовые узлы, которые не были обернуты тегами "<p>", вместо этого они имеют теги "<br>" в конце каждого абзаца.

Я хочу обернуть этот текст тегами <p>, используя Nokogiri:

<div id="f15"><b>Footnote 15</b>: Catullus iii, 12.</div>
<div class="pgmonospaced pgheader"><br/>
<br/>
End of the Project abc<br/>
<br/>
*** END OF THIS PROJECT XYZ ***<br/>
<br/>
***** This file should be named new file.html... *****<br/>
<br/></div>

1 Ответ

5 голосов
/ 23 января 2012

После поиска по некоторым форумам и локальной отладки я нашел следующее решение моей проблемы.

html_doc = Nokogiri::HTML.parse('path/to/html_file')
html_doc
html_doc.search("//br/preceding-sibling::text()|//br/following-sibling::text()").each do |node|
    node.replace(Nokogiri.make("<p>#{node.to_html}</p>"))
end
...