Meteorを改造
test_xml.rbを次のようにも書けるようにしてみました。
#!bin ruby # -* coding: UTF-8 -*- require 'meteor' pf = Meteor::ParserFactory.build(Meteor::Parser.XML,"test.xml", "UTF-8") ps = pf.getParser #puts ps.document elm1 = ps.element("test","manbo","manbo") elm1.attribute("id2","cc") co_ps = ps.child(elm1) 10000.times { |i| co_ps.attribute("manbo",i.to_s) elm5 = co_ps.element("tech") elm5.attribute("eco","ema") elm5.content(i.to_s) co_ps.print } co_ps.flush ps.print puts ps.document
更に次のようにも書けるようにしてみました。
#!bin ruby # -* coding: UTF-8 -*- require 'meteor' pf = Meteor::ParserFactory.build(Meteor::Parser.XML,"test.xml", "UTF-8") ps = pf.getParser #puts ps.document elm1 = ps.element("test","manbo","manbo") elm1["id2"]="cc" co_ps = ps.child(elm1) 10000.times { |i| co_ps["manbo"]=i.to_s elm5 = co_ps.element("tech") elm5["eco"]="ema" elm5[":content"]=i.to_s co_ps.print } co_ps.flush ps.print puts ps.document
Rubyは演算子オーバーロード(再定義)が可能なので、配列参照演算子を
オーバーロードし、実装。
[2008.08.29 : 追記]
メソッド名変更に伴い、上記プログラムを修正しました。