2017-04-25 14 views
0

これはレール3/4(2つの異なるテスト環境)にあります。私は、Base64がPOSTでXMLをエンコードするクライアントを持っています。文字列をデコードすることができます。これは整形式XMLのように見えます。レールを実際に認識できるXMLに変換するにはどうすればよいですか?つまり、私はXMLのすべての情報を必要とせず、いくつかのノードに含まれるコンテンツのほんの一部です。ruby​​ on rails投稿からデコードされたXML文字列を読み取る

EX:?元のXML

<xml....> 
<node1>content</node1> 
<node2>content2</node2> 
<node3>content3</node3> 
</xml> 

.....クエリ文字列に base64でエンコードされ、掲載

URL ....名前= BASE64(XML)

Iこの時点で、パラメータを引き出すことができます

myvariable = Base64.decode64(params[:name]) 

この時点では、myvariableは単なる長い文字列です。文字列がかなり長くなる可能性があるので、文字列検索を使用して解析するのではなく、

.....

はおそらくHappy Mapperのようなものを使ってRubyのオブジェクトにマッピングすることができ、あなたに

答えて

0

に感謝します。

0

あなたのように見えるレールを使用している場合、レールチームはすでにHash.from_xml(xml_string)でこれを可能にするためにHashオブジェクトにパッチを当てています。

> a = "<xml><node1>content</node1><node2>content2</node2><node3>content3</node3></xml>" 
=> "<xml><node1>content</node1><node2>content2</node2><node3>content3</node3></xml>" 
> hash = Hash.from_xml(a) 
=> {"xml"=>{"node1"=>"content", "node2"=>"content2", "node3"=>"content3"}} 

あなたは、あなたが望むように相互に登録できる普通の古いルビーオブジェクトを持っています。これは整形式XMLでのみ機能することに注意してください(あなたの例には閉じタグがありません)。

+0

ありがとう – matt

関連する問題