2009-09-13 72 views
0

我爲一堆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來完成。

+0

你看過REXML :: Formatters :: Pretty嗎?但請注意,它可能會在您的 s和 s中添加一些不需要的空白。 – Inshallah 2009-09-13 15:30:54

+0

你是如何編寫XML的? – 2009-09-13 15:49:56

+0

感謝您的查詢 - 我更新了這個問題。 – 2009-09-13 18:32:07

回答

3

Robert Klemme和Aaron Patterson came up with the goods在ruby-talk列表上。

這是我第一次在SoF上提出的問題繪製了一個完整的空白。

+0

這是格式化xml文件的簡單方法。謝謝。 – spmno 2012-04-23 07:10:03

相關問題