私は現在、いくつかの 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」文字で分割して一度に 1 行ずつファイルに書き込もうとしましたが、「\n」文字を認識しなかったため、どちらもうまくいかなかったようです。どんな助けでも大歓迎です。それは非常に単純な解決策かもしれませんが、見つけるのに苦労しています。ありがとう!