如何在添加的元素上控制REXML格式?
问题描述:
我为一堆XML文件(plists)添加了一些简单的元素。我的工作在现有的XML元素看起来是这样的:如何在添加的元素上控制REXML格式?
<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:
tmtheme.write($stdout)
也试过
tmtheme.write($stdout, 2)
但是,这些不会返回所需的结果。以下看起来很有希望:
tmtheme.write($stdout, 2, true)
但是,这给了我一个known error。更新:刚刚在Ruby 1.9上试过了,虽然我没有得到错误,但它并没有帮助 - 我仍然可以看到上面示例中的格式。
谁能告诉我如何格式化XML,使其符合文档其余部分的格式化风格?它不一定需要用REXML来完成。
答
Robert Klemme和Aaron Patterson came up with the goods在ruby-talk列表上。
这是我第一次在SoF上提出的问题绘制了一个完整的空白。
+0
这是格式化xml文件的简单方法。谢谢。 – spmno 2012-04-23 07:10:03
你看过REXML :: Formatters :: Pretty吗?但请注意,它可能会在您的 s和 s中添加一些不需要的空白。 –
Inshallah
2009-09-13 15:30:54
你是如何编写XML的? – 2009-09-13 15:49:56
感谢您的查询 - 我更新了这个问题。 – 2009-09-13 18:32:07