我是在一堆XML文件(plists)中添加几个简单元素。我正在处理的现有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 )
但这给了我一个known error。更新:刚刚在Ruby 1.9上试过它,虽然我没有得到错误,但它没有帮助 - 我仍然得到格式,如上例所示。
有人能告诉我如何格式化XML以使其符合文档其余部分的格式化风格吗?它不一定需要使用REXML。
答案 0 :(得分:3)
Robert Klemme和Aaron Patterson came up with the goods在红宝石谈话清单上。
这是我第一次在SoF上提出的问题已经填补了空白。