StreamingMarkupBuilderでXML宣言を出力
前回のg*workshopでは「StreamingMarkupBuilderはXML宣言を出力してくれない」と言いましたが、実はありました。id:kskyさんからTwitterでやりかたを教えていただきましたのでメモ。
import java.nio.charset.* import groovy.xml.* def xml = new StreamingMarkupBuilder().bind{ mkp.xmlDeclaration() message("Hello World") } def writer = new OutputStreamWriter(System.out, Charset.forName('UTF-8')) writer << xml
これで、
<?xml version="1.0" encoding="UTF-8"?> <message>Hello World</message>
が出力されます。encodingのところは、ちゃんと出力先Writerのencodingにあわせて出力されるようです。
調べてみたら、ここにも情報ありましたね。。。調査不足でした。
http://www.ibm.com/developerworks/jp/java/library/j-pg05199/