У меня есть приложение rails, которое анализирует HTML, используя версию nokogiri gem 1.4.0
Для анализа и очистки фрагмента HTML, я использую это:
Nokogiri::HTML::DocumentFragment.parse(text).to_html
Я получаю эту ошибку, когда пытаюсь разобрать некоторые входные данные, которые работали при использовании hpricot для разбора:
NoMethodError: undefined method `namespace_definitions' for nil:NilClass
from .../nokogiri-1.4.0/lib/nokogiri/xml/fragment_handler.rb:33:in `start_element'
from .../nokogiri-1.4.0/lib/nokogiri/html/sax/parser.rb:34:in `parse_with'
from .../nokogiri-1.4.0/lib/nokogiri/html/sax/parser.rb:34:in `parse_memory'
from .../nokogiri-1.4.0/lib/nokogiri/xml/sax/parser.rb:83:in `parse'
from .../nokogiri-1.4.0/lib/nokogiri/xml/document_fragment.rb:7:in `initialize'
from .../nokogiri-1.4.0/lib/nokogiri/html/document_fragment.rb:9:in `new'
from .../nokogiri-1.4.0/lib/nokogiri/html/document_fragment.rb:9:in `parse'
Я отследил его до тега, который из того, что я получил, является тем, что MS Office использует для обозначения разрывов абзаца.
<p class="MsoNormal"><span style="font-family:"Arial","sans-serif""><o:p></o:p></span></p>
Есть ли способ заставить Нокогири не взорваться на этом теге? В идеале мне бы хотелось, чтобы тег оставался неизменным, как это сделал бы hpricot, если это возможно. Если нет, то хотя бы удаление тегов было бы лучше, чем выдача ошибки.