RubyだとXML出力するのすごく楽だ!・・・と思いきや意外とC#も
XMLを出力するのは意外と面倒くさい。
が、RubyだとDSLのように簡単にXMLの出力コードを記述することができる。
このライブラリを使用する。
Builder for Markup
※標準でDSLのように記述できるライブラリが入っていればいいのに・・・
まずはgem install
gem install builder
Successfully installed builder-2.1.2
1 gem installed
Installing ri documentation for builder-2.1.2...
Updating class cache with 1261 classes...
Installing RDoc documentation for builder-2.1.2...
code(ruby)
require 'builder/xmlmarkup' xml = Builder::XmlMarkup.new(:indent=>2) p xml.Data { xml.RegistrationName( :Name => "Hello", :First => "Last" ) { xml.WindowInfo{ xml.E("uuu") xml.AAAA("ooo") } } }
出力結果
uuu ooo
すごく簡単にXMLの出力ができる。
ほとんどXMLをそのまま書いているような感じ。
実装的にはmethod_missingをフックしてあれこれやってるんだろう。
C#じゃこうはいかないよね?
普段C#を使っていて、こんな風に簡単にXMLが書ければいいのになぁ・・・
と思っていたら同じようなことができることをさっき知った。
code(C#:XLINQ)
Console.WriteLine( new XElement("Data", new XElement("RegistrationName", new XAttribute("Name", "Hello"), new XAttribute("First", "Last"), new XElement("WindowInfo", new XElement("E", "uuu"), new XElement("AAAA", "ooo") ) ) ) );
・・・今まで.Add(〜)とひたすらやっていた時間を返してー