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 になる)