我正在向一堆 XML 文件(plist)中添加几个简单的元素。我正在处理的现有 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 来完成。