2
我解析從Google通訊錄API返回的XML,在Nokogiri中使用XPath。如何對Nokogiri NodeSet進行排序?
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
,但是如何從數組中選擇標題?
非常感謝,你介意解釋這是如何工作,請讓我可以再次使用也許在不同的場景 – Richlewis
<=>在做什麼?是比較? – Richlewis
您傳遞的是一個塊,其中a,b是數組中的任意兩個對象,而<=>是您希望將數組中的任何兩個對象進行比較的方式,所以是的,這是比較。因此,例如讓我說我已經得到了一組對象,我希望按照他們的「收入」減去他們的「成本」來分類,我會做@ objects.sort!{| a,b | (a.revenue - a.cost)<=>(b.revenue - b.cost)}這將返回一個按利潤排序的數組。 – rovermicrover