1

ユーザーを作成した後、roar エンジンから取得した XML データを解析するために Nokogiri を使用しています。XML は次のようになります。

<roar tick="135098427907">
  <facebook>
    <create_oauth status="ok">
      <auth_token>14802206136746256007</auth_token>
      <player_id>8957881063899628798</player_id>
    </create_oauth>
   </facebook>
</roar>

のこぎり初心者です。status、 、の値auth_tokenを取得するにはどうすればよいplayer_idですか?

4

3 に答える 3

2

海苔の宝石を使用できます。xmlからハッシュへのコンバーターであり、ルビーではハッシュにアクセスするのに非常に便利です

require 'nori'

Nori.parser = :nokogiri

xml = "<roar tick='135098427907'>
           <facebook>
               <create_oauth status='ok'>
                   <auth_token>14802206136746256007</auth_token>
                   <player_id>8957881063899628798</player_id>
               </create_oauth>
           </facebook>
      </roar>"

hash = Nori.parse(xml)
create_oauth = hash["roar"]["facebook"]["create_oauth"]

puts create_oauth["auth_token"] # 14802206136746256007
puts create_oauth["@status"]    # ok
puts create_oauth["player_id"]  # 8957881063899628798
于 2012-10-23T09:57:02.870 に答える
2
str = "<roar ......"
doc = Nokogiri.XML(str)
puts doc.xpath('//create_oauth/@status')  # => ok
puts doc.xpath('//auth_token').text       # => 148....
# player_id is the same as auth_token

また、 w3schoolsから優れた xpath を学習することをお勧めします。

于 2012-10-23T09:45:56.607 に答える
2

これはどう

h1 = Nokogiri::XML.parse %{
    <roar tick="135098427907">
  <facebook>
    <create_oauth status="ok">
      <auth_token>14802206136746256007</auth_token>
      <player_id>8957881063899628798</player_id>
    </create_oauth>
   </facebook>
</roar>
}


h1.xpath("//facebook/create_oauth/auth_token").text()
h1.xpath("//facebook/create_oauth/player_id").text()
于 2012-10-23T09:47:12.653 に答える