その他
    ホーム 技術発信 DoRuby Ruby On Rails xmlからハッシュ ハッシュからxml変換

    Ruby On Rails xmlからハッシュ ハッシュからxml変換

    この記事はアピリッツの技術ブログ「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’) }
    日本語使う場合これで日本語してください。

    このメソッドは簡単に変換できますが、複雑な変換はあまりできません。
    以上。