Я добавляю пару простых элементов в кучу файлов XML (списки). Существующий элемент XML, над которым я работаю, выглядит следующим образом:
<dict>
<key>background</key>
<string>#FFFFFF</string>
<key>caret</key>
<string>#000000</string>
<key>foreground</key>
<string>#000000</string>
<key>invisibles</key>
<string>#BFBFBF</string>
<key>lineHighlight</key>
<string>#00000012</string>
<key>selection</key>
<string>#BAD6FD</string>
</dict>
Я захватил этот элемент в объекте с именем settings
, и я добавляю новые элементы <key>
и <string>
и добавляю некоторый текст к этим элементам. Пока достаточно просто:
settings.add_element('key').add_text('gutter')
settings.add_element('string').add_text('#282828')
Проблема в том, что когда я записываю это обратно, XML выглядит так (обратите внимание на последнюю строку):
<dict>
<key>background</key>
<string>#FFFFFF</string>
<key>caret</key>
<string>#000000</string>
<key>foreground</key>
<string>#000000</string>
<key>invisibles</key>
<string>#BFBFBF</string>
<key>lineHighlight</key>
<string>#00000012</string>
<key>selection</key>
<string>#BAD6FD</string>
<key>gutter</key><string>#282828</string></dict>
Я использую метод write (REXML::Document)
для записи XML (на данный момент в $ stdout):
tmtheme.write( $stdout )
Также пробовал
tmtheme.write( $stdout, 2 )
Но они не возвращают желаемых результатов. Следующее выглядит многообещающе:
tmtheme.write( $stdout, 2, true )
Но это дает мне известную ошибку . Обновление: только что попробовал на Ruby 1.9, и, хотя я не получаю ошибку, это не помогает - я все еще получаю форматирование, как показано в примере выше.
Может кто-нибудь сказать мне, как я могу отформатировать XML, чтобы он соответствовал стилю форматирования остальной части документа? Это не обязательно должно быть сделано с REXML.