如何从Groovy Markupbuilder获取字节

如何从Groovy Markupbuilder获取字节,groovy,inputstream,Groovy,Inputstream,我需要从groovy.xml.MarkupBuilder对象创建一个新的ByteArrayInputStream。我需要将字节传递给inputstream构造函数,但我不知道如何访问它们。JDom是这样做的: SAXBuilder builder = new SAXBuilder(); Document doc = builder.build(someInputstream); ... XMLOutputter outputter = new XMLOutputter(); someInputS

我需要从groovy.xml.MarkupBuilder对象创建一个新的ByteArrayInputStream。我需要将字节传递给inputstream构造函数,但我不知道如何访问它们。JDom是这样做的:

SAXBuilder builder = new SAXBuilder();
Document doc = builder.build(someInputstream);
...
XMLOutputter outputter = new XMLOutputter();
someInputStream = new ByteArrayInputStream(outputter.outputString(doc).getBytes("UTF-8"));

但是我找不到一种使用MarkupBuilder做类似事情的方法。你可以做这样的事情:

InputStream ins = new StringWriter().with { sw ->
    new MarkupBuilder( sw ).build {
        node {
            woo( 'yay' )
        }
    }
    new ByteArrayInputStream( sw.toString().getBytes( 'UTF-8' ) )
}

我们应该如何添加xml声明