2013-05-27 2 views
18

Я использую XML MarkupBuilder для создания XML-файловGroovy XML MarkupBuilder не создает корень <?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') 
} 

и я получаю результат:

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

как я могу сделать это генерировать корень XML-тег также?

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

ответ

40

Вы можете добавить объявление XML с MarkupBuilder тоже:

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

Так что я угадываю, что я сделал, это не правильный способ сделать это: xmlObj.write (" \ N") – iMiX

11

Вы должны добавить его yourlsef

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

Разрабатывать, 'mkp' доступен в построитель укупорочные для получения доступа к [ MarkupBuilderHelper] (http://groovy.codehaus.org/api/groovy/xml/MarkupBuilderHelper.html), который включает метод 'xmlDeclaration'. –

Смежные вопросы