この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
ども、rick No.16です
今回は、Railsでxmlをハッシュにする方法とハッシュをxmlにする方法を紹介します。
環境
Rails1.2.6
Ruby1.8.6
ハッシュ化
記述する場所はmodelでもcontrollerでもいいです。
include REXML
require “rexml/document”
xml = “body” //xmlのサンプルデータ
rexml = REXML::Document.new(xml) //DOMツリー(木構造)の作成
hash = Hash.from_xml(rexml.elements[‘/xml’].to_s) //ハッシュ化
xml化
hash.to_xml //上記で作成したハッシュをxml化
ちなみに
to_xmlは日本語対応していませんので、
変数.to_xml.gsub(/&#(?:(\d*?)|(?:[xX]([0-9a-fA-F]{4})));/) { [$1.nil? ? $2.to_i(16) : $1.to_i].pack(‘U’) }
日本語使う場合これで日本語してください。
このメソッドは簡単に変換できますが、複雑な変換はあまりできません。
以上。