2009-07-08 16 views
1

xmlファイルを取得したいのですが、これをhttpリクエストでオブジェクトに要求できます。 私は(コントローラで)これに似たものを探しています:httpで要求されたファイル(xml)をオブジェクトに格納する方法は?

@ticket = request "http://example.com?ticketid=1234" 

http://tickets.com?ticketid=1234はXMLを返します(tickets.comアプリを実行しているサイトではありません)。

次に、@ticketを解析して、xmlからデータを取得します。

あなたのご協力のためにたくさんのThx!あなただけの文字列にXMLをダウンロードしたい場合は

+0

@ticketにXMLを含めるか、実際にはXMLで表されるデータを反映するクラスのインスタンスにしますか? –

+0

私はそれについてまだ考えていませんでした。はい、私は、XMLのデータを取り出して、作業を続行したいと考えています。私は後でこれをどうやって処理しなければならないのか見ていませんでした(私はプログラミングでかなり新しいので、ステップバイステップをとっています)。フォローアップのための thx –

答えて

2

、次のように行います:

require 'open-uri' 

xml = URI.parse("http://example.com?ticketid=1234").read 

をあなたはこのXMLを解析し、データを抽出したい場合は、 パーサのいくつかの種類を見てする必要があります、例えばLibXmlまたはNokogiri

他のRailsアプリケーションからデータにアクセスしようとしている場合は、おそらくActiveResourceの方法があります。ここに素敵なintroductionがあります。

1

ウェブサービスを非常に簡単に使用できるように、HTTPartyをチェックしてください。あなたは、XMLデータを持っていたら、あなたはそれを変換するためにアクティブサポートハッシュ拡張機能を使用することができ

@ticket['title'] # => the <title> element 
1

class Ticket 
    include HTTParty 
    format :xml 
end 

@ticket = Ticket.get('http://url/to/ticket') 

その後、あなたはハッシュの要素にアクセスすることができます。基本的に、あなたはこのような何かをしたいです

xml = URI.parse("http://example.com?ticketid=1234").read 
data = Hash.from_xml(xml) 

このようにして、余分なライブラリは不要で、xmlをトラバースすることができます。 YMMV

注:このメソッドが要素の属性をどのように処理するかは不明です。

+0

thx! –

0

あなたはこのようHpricot XML methodを使用することができます。

require 'open-uri' 
require 'hpricot' 

@ticket = Hpricot.XML open "http://example.com?ticketid=1234" 

その後、あなたは簡単Hpricot動的メソッドで@ticketを解析することができます。 Hpricotページのいくつかの例を参照してください。

関連する問題