我需要从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做类似事情的方法
答案 0 :(得分:2)
你可以这样做:
InputStream ins = new StringWriter().with { sw ->
new MarkupBuilder( sw ).build {
node {
woo( 'yay' )
}
}
new ByteArrayInputStream( sw.toString().getBytes( 'UTF-8' ) )
}