Ho il seguente XML:Analisi semplice XML con Nokogiri
<links>
<item>
<title>Title 1</title>
<url>http://www.example.com/url-1</url>
</item>
<item>
<title>Title 2</title>
<url>http://www.example.com/url-2</url>
</item>
<item>
<title>Title 3</title>
<url>http://www.example.com/url-3</url>
</item>
</links>
E, vorrei convertirlo in un elenco HTML:
<ul>
<li><a href="http://www.example.com/url-1">Title 1</a></li>
<li><a href="http://www.example.com/url-2">Title 2</a></li>
<li><a href="http://www.example.com/url-3">Title 3</a></li>
</ul>
Attualmente ho questo:
Controller:
require 'nokogiri'
doc = Nokogiri::XML(...)
@links = doc.xpath('//links/item').map do |i|
{'title' => i.xpath('//title'), 'url' => i.xpath('//url')}
end
Template:
<ul>
<% @links.each do |l| %>
<li><a href="<%= l['url'] %>"><%= l['title'] %></a></li>
<% end %>
</ul>
HTML risultante:
<ul>
<li><a href="http://www.example.com/url-1http://www.example.com/url-2http://www.example.com/url-3">Title 1Title 2Title 3</a></li>
<li><a href="http://www.example.com/url-1http://www.example.com/url-2http://www.example.com/url-3">Title 1Title 2Title 3</a></li>
<li><a href="http://www.example.com/url-1http://www.example.com/url-2http://www.example.com/url-3">Title 1Title 2Title 3</a></li>
</ul>
Che cosa sto facendo di sbagliato? C'è un modo più ottimale per farlo?
Buona domanda, +1. Vedi la mia risposta per una soluzione corretta e per una spiegazione dettagliata del problema. –