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 回答