В настоящее время я выполняю некоторый синтаксический анализ XML, и я решил использовать Hpricot из-за его простоты использования и синтаксиса, однако я сталкиваюсь с некоторыми проблемами. Мне нужно записать фрагмент данных XML, который я обнаружил, в другой файл. Однако, когда я делаю это, формат не сохраняется. Например, если содержимое должно выглядеть следующим образом:
<dict>
<key>item1</key><value>12345</value>
<key>item2</key><value>67890</value>
<key>item3</key><value>23456</value>
</dict>
И при условии, что в документе много таких записей. Я перебираю элементы 'dict', используя
hpricot_element = Hpricot(xml_document_body)
f = File.new('some_new_file.xml')
(hpricot_element/:dict).each { |dict| f.write( dict.to_original_html ) }
После использования приведенного выше кода, я ожидаю, что результат будет выглядеть следующим образом, точно так же, как XML, показанный выше. Однако, к моему удивлению, вывод файла выглядит примерно так:
<dict>\n", " <key>item1</key><value>12345</value>\n", " <key>item2</key><value>67890</value>\n", " <key>item3</key><value>23456</value\n", " </dict>
Я попытался разбить символы "\ n" и записать в файл по одной строке за раз, но, похоже, это тоже не сработало, поскольку не распознало символы "\ n". Любая помощь очень ценится. Это может быть очень простое решение, но я не могу найти его. Спасибо!