2017-02-16 98 views
0

我想創建一個XML並將其保存在一個文件中。以下是代碼的一部分使用groovy問題創建XML

def fileWriter = new FileWriter("c:/temp/test.xml") 
    def xml = new groovy.xml.MarkupBuilder(fileWriter).event { 
    event ("xmlns" : "http://www.hp.com/2009/software/opr/data_model") { 
     state("closed") 
    } 
// fileWriter.close();   
    } 
    fileWriter.close(); 

這工作正常,並在c:\ temp \ Directory中創建一個XML文件。

這就是它的樣子。

<event> 
<event xmlns='http://www.hp.com/2009/software/opr/data_model'> 
<state>closed</state> 
</event> 
</event> 

,但我想要的只是

<event xmlns='http://www.hp.com/2009/software/opr/data_model'> 
<state>closed</state> 
</event> 

如何我第一次也是最後避免XML輸出?

+0

請仔細閱讀並遵守http://stackoverflow.com/help/someone-answers ;-) – Vampire

回答

2

擺脫額外event

import groovy.xml.MarkupBuilder 

def fileWriter = new FileWriter("c:/temp/test.xml") 

new MarkupBuilder(fileWriter).event("xmlns": "http://www.hp.com/2009/software/opr/data_model") { 
    state("closed") 
} 

fileWriter.close(); 
+0

謝謝。我工作了。我試圖刪除第一個錯誤的事件標籤。 –

2

你打電話時的兩倍,因此你得到兩個事件代碼。
調用一次,你只能得到一個。
Besidest,我會建議使用withWriter()

new File(/c:\temp\test.xml/).withWriter { 
    def xml = new groovy.xml.MarkupBuilder(it).event(xmlns: 'http://www.hp.com/2009/software/opr/data_model') { 
    state 'closed' 
    } 
} 

無需手動關閉編寫即可。