Meteorのサンプル(XMLの場合)
#!bin ruby # -* coding: UTF-8 -*- require 'rubygems' require 'meteor' pf = Meteor::ParserFactory.new pf.parser(Meteor::Parser.XML,'test.xml', 'UTF-8') ps = pf.parser('test') ##時間計測:ここから elm1 = ps.element("test","manbo","manbo") #elm1.attr("id2","cc") elm1['id2'] = 'cc' elm_ = ps.element(elm1) elm5_=elm_.child("tech") 10.times { |i| #elm_.attr("manbo",i.to_s) elm_['manbo'] = i.to_s elm5 = elm5_.clone #elm5.attr("eco","ema") elm5['eco']='ema' elm5.content = i.to_s elm_.flush } ps.flush ##時間計測:ここまで puts ps.document
<?xml version="1.0" encoding="UTF-8"?> <root> <test manbo="manbo"> <tech mono="mono">こまねち</tech> </test> </root>
結果
<?xml version="1.0" encoding="UTF-8"?> <root> <test manbo="0" id2="cc"> <tech mono="mono" eco="ema">0</tech> </test><test manbo="1" id2="cc"> <tech mono="mono" eco="ema">1</tech> </test><test manbo="2" id2="cc"> <tech mono="mono" eco="ema">2</tech> </test><test manbo="3" id2="cc"> <tech mono="mono" eco="ema">3</tech> </test><test manbo="4" id2="cc"> <tech mono="mono" eco="ema">4</tech> </test><test manbo="5" id2="cc"> <tech mono="mono" eco="ema">5</tech> </test><test manbo="6" id2="cc"> <tech mono="mono" eco="ema">6</tech> </test><test manbo="7" id2="cc"> <tech mono="mono" eco="ema">7</tech> </test><test manbo="8" id2="cc"> <tech mono="mono" eco="ema">8</tech> </test><test manbo="9" id2="cc"> <tech mono="mono" eco="ema">9</tech> </test> </root>
自分の環境(Core2Duo2.4GHz、MacOSX10.5.7)でtest_xml.rbの11行目以降30行めまでが2〜3ミリ秒、1.9.1の場合。