Как мне управлять форматированием REXML на добавленных элементах? - PullRequest
0 голосов
/ 13 сентября 2009

Я добавляю пару простых элементов в кучу файлов 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.

1 Ответ

3 голосов
/ 16 сентября 2009

Роберт Клемм и Аарон Паттерсон придумали товар в списке разговоров по рубину.

Впервые вопрос, который я задал для SoF, полностью заполнен.

...