如何从Groovy Markupbuilder获取字节

时间:2014-04-17 08:52:17

标签: groovy inputstream

我需要从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做类似事情的方法

1 个答案:

答案 0 :(得分:2)

你可以这样做:

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