我正在使用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
,但如何从数组中选择标题?
答案 0 :(得分:3)
以下内容应该有效
@mycontacts.sort!{|a, b| a.xpath('xmlns:title').text <=> b.xpath('xmlns:title').text}
该块告诉它根据每个对象的.xpath('xmlns:title')。文本进行比较。