ActiveSupportを使うと簡単。 XMLをハッシュに変換して、ハッシュをJSONに変換する。 require 'active_support/core_ext' xml = '<Item><Title>ひげろぐ</Title></Item>' json = Hash.from_xml(xml).to_json Hash.from_xmlがActiveSupportで追加されるメソッド。
crackを使うとお手軽。 crackはXMLパーサがMerb,JsonパーサがRailsから拝借してるそう。 gem install crackrequire 'rubygems' require 'crack' # XMLをパース Crack::XML.parse("<tag>This is the contents</tag>") # => {'tag' => 'This is the contents'} # JSONをパース Crack::JSON.parse('{"tag":"This is the contents"}') # => {'tag' => 'This is the contents'} jsonライブラり使ったりしてxml→jsonも簡単
要約 RubyでHTMLからTeXへのトランスレータを書いた。 NokogiriのNokogiri::XML::SAX::Documentあたりを使うのが便利そうに感じたが、実際にやるとソースコードが崩壊した。 SAXではなくDOMを用いて階層構造を再帰で辿ったほうがいい。さらにメタプログラミングを用いると割と簡潔な記述にできる。 原因 RubyでのXML操作にはデファクトスタンダードとなりつつあるNokogiri。 HTMLから特定のタグを抽出して……のようなお手軽パースには大変快適なんですが、XMLの全部のタグにアクションを起こすような本格的にパースするとき、すごくやりづらい気がする。そもそもググッてもロクなexampleがでてこない しょうがないので試行錯誤して、まずNokogiriのSAXを使った。 SAXはXMLを「要素の始まり」、「要素の終わり」、「テキスト」の3つにわけ、それ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く