У меня возникают проблемы с убогом неверного кода XML. Я возвращаюсь с SEC's edgar database.Как убрать неправильный xml в ruby
По какой-то причине они имеют ужасно сформированный xml. Теги, содержащие любую строку, не закрыты и фактически могут содержать другие документы xml или html внутри других тегов. Обычно у меня было это до Tidy, но это не поддерживается.
Я пробовал использовать Nokogiri :: XML :: SAX :: Parser, но кажется, что он задыхается, потому что теги не закрыты. Кажется, что все работает нормально, пока оно не попадет в первый завершающий тег, а затем больше не срабатывает. Но он выплескивает правильных персонажей.
class Filing < Nokogiri::XML::SAX::Document
def start_element name, attrs = []
puts "starting: #{name}"
end
def characters str
puts "chars: #{str}"
end
def end_element name
puts "ending: #{name}"
end
end
Похоже, что это будет лучший вариант, потому что я могу просто игнорировать его другой XML или HTML документ. Кроме того, это будет иметь наибольший смысл, потому что некоторые из этих документов могут стать довольно большими, поэтому хранение всей памяти в памяти, вероятно, не сработает.
Вот несколько примеров файлов: 123
Я начинаю думать, что я просто должен написать свой собственный анализатору
нормальный режим DOM
Пожалуйста, определите «довольно большой», если вы имеете в виду большой файл. Большинство машин в эти дни могут легко проглотить файлы с несколькими гигабайтами. –