プログラミングメモ帳

プログラミングで躓いた部分を中心としたIT土方的メモ。

XmlSlurper の出力時に tag0 名前空間が付かないようにする

XmlSlurper クラスを利用して XML ドキュメントを読み込んだあと、 いろいろ処理をしたあとに書き出してみたら <tag0:xxx> という名前空間になってしまって困る場合の対処法。

import groovy.xml.StreamingMarkupBuilder
import groovy.xml.XmlUtil

def doc = new XmlSlurper(false, false).parse(new File('input.xml'))

// 色々処理する

def out = new FileWriter('output.xml')
XmlUtil.serialize(new StreamingMarkupBuilder().bind {
    mkp.yield doc
}, out)

コンストラクタ XmlSlurper() の第 2 引数に false を指定すると、tag0 名前空間が与えられるのを阻止できる。
(ちなみに第 1 引数は XML 文章の検証を行うかどうかを設定できるもので、引数なしの場合は false になる)

参考: XmlSlurper (Groovy 2.4.12)