出力

「はじめての XML。」

XML を生成しなきゃならなくなった。Ruby の添付ライブラリに含まれる REXML を使うのだが、リファレンスではいまいち分からないので、チュートリアルを見ながら四苦八苦。

#/usr/bin/env ruby -Ku

require "rexml/document"
include REXML 

def element(name, attributes={}, elements=[])
	temp = Element.new(name)
	attributes.each {|key, value|
		temp.add_attribute(key, value)
	}
	elements.each {|item|
		temp.add_element(item)
	}
	temp.add_text yield if block_given?
	return temp
end

xhtml = element("html", {}, 
		[	element("head", {}, [element("title"){"TEST"}]),
			element("body", {}, [element("h1"){"hello world!"}])
		]
)
doc = Document.new
doc << XMLDecl.new(1.0, "utf-8")
doc << xhtml

puts "==="
doc.write($stdout, 0)
puts ""
puts "==="

…少し工夫すれば、オブジェクトを簡単に XML 化するのもができそうだ。でも、きっと先に誰か作ってるか、リファレンスを良く読めば、既にあるはず…。