Подтвердить что ты не робот

Groovy XML MarkupBuilder не создает root <? xml....?>

Я использую 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"?>
4b9b3361

Ответ 1

Вы также можете добавить объявление xml с помощью MarkupBuilder:

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

Ответ 2

Вам нужно добавить itlsef

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