Rubyでxmlを編集するために、REXMLで
xml = ''
doc.root.write(xml)
と、REXML::Element.writeを使ったら、
REXML::Element.write is deprecated. See REXML::Formatters
といわれたので、REXML::Formattersを使ってみました。
xml = ''
formatter = REXML::Formatters::Default.new
formatter.write(doc.root, xml)
REXML::Formatters::Defaultは、XMLをそのまま出力します。
REXML::Formatters::Prettyは、XMLを整形して出力します。
xml = ''
formatter = REXML::Formatters::Pretty.new
formatter.write(doc.root, xml)
REXML::Formatters::Prettyの標準のインデントの空白の数は2です。
コンストラクタに引数を与えることで、空白の数を変更できます。
formatter = REXML::Formatters::Pretty.new(4) #=> インデントの空白の数は4
write()メソッドの引数は、nodeとoutputの2つ。
REXML::Formatters::Default#write(node, output)
nodeのXMLをoutputに出力することになります。
outputはメソッド <<(value) が定義されている必要があります。