2

Nokogiri で XPath を使用して、Google 連絡先 API から返された XML を解析しています。

def getcontact
  doc = Nokogiri::XML.parse(open(url))
  doc.xpath('//xmlns:feed/xmlns:entry[xmlns:title[node()]]')
end

私のコントローラーは:

def index
  @mycontacts = getcontact.to_a.paginate(:page => params[:page], :per_page => 30)
end

私の見解は次のとおりです。

<% @mycontacts.each do |c| %>
  <p> Name: <%= c.xpath('xmlns:title').text %>  Email: <%= c.xpath('gd:email/@address').text %></p>
<% end %>

<%= will_paginate @mycontacts %>

タイトルをアルファベット順に並べ替えたいのですが、どうすればよいでしょうか。を使用できることを読みましたsort_byが、配列からタイトルを選択するにはどうすればよいですか?

4

1 に答える 1

3

以下は動作するはずです

@mycontacts.sort!{|a, b| a.xpath('xmlns:title').text <=> b.xpath('xmlns:title').text}

ブロックは、各オブジェクトの .xpath('xmlns:title').text に基づいて比較を行うように指示します。

于 2013-03-31T18:33:02.763 に答える