2013-05-27 13 views
18

Używam XML MarkupBuilder do generowania plików XMLGroovy XML MarkupBuilder nie tworzy korzeń <?xml .... ?>

import groovy.xml.StreamingMarkupBuilder 
import groovy.xml.MarkupBuilder 
import org.custommonkey.xmlunit.* 

.... 

def xmlObj = new StringWriter() 
def xml = new MarkupBuilder(xmlObj) 
xml.book("id":21){ 
    name('bookname') 
} 

i otrzymuję komunikat:

<book id='21'> 
    <name>bookname</name> 
</book> 

jak mogę zrobić to wygenerować tag korzeń xml także?

<?xml version="1.0" encoding="utf-8"?> 

Odpowiedz

40

Możesz dodać deklarację xml z MarkupBuilder też:

def xml = new MarkupBuilder(xmlObj) 
xml.mkp.xmlDeclaration(version: "1.0", encoding: "utf-8") 
xml.book("id":21){ 
    name('bookname') 
} 
+0

Zgaduję więc, co zrobiłem, nie jest to właściwy sposób: xmlObj.write (" \ N") – iMiX

11

Trzeba dodać, że yourlsef

def xml = new StreamingMarkupBuilder().bind{ 
     mkp.xmlDeclaration() 
     task { 
      id(_Id) 
      name("clean") 
     } 
    } 
+0

Aby opracować, 'mkp' jest dostępny w zamknięć builder uzyskać dostęp do [ MarkupBuilderHelper] (http://groovy.codehaus.org/api/groovy/xml/MarkupBuilderHelper.html), który obejmuje metodę 'xmlDeclaration'. –

Powiązane problemy