2009-11-05 5 views
0

J'ai quelques xml sur le serveur (http://server.com/my.xml). Voici l'exemple:Ruby (RoR) XML de hachage, puis montrer dans les vues

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE current PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<current> 
    <song>Bruce - Inside The Machine</song> 
    <song>02 Duel of the Fates 1</song> 
</current> 

Sur application Rails je:

response = open("http://server.com/my.xml").read 
@sngs = Hash.from_xml(response) 

Maintenant, dans les vues, je veux mettre chaque valeur « chanson » dans la balise « p » par exemple, mais pas un par un. Je dois mettre, par exemple exact premier ou deuxième.

Comment peut-il faire?

(Un grand merci!)

Répondre

1

Hash.from_xml va créer une table de hachage de la forme:

{"current" => {"song" => ["Bruce - Inside The Machine", "02 Duel Of the Fates 1"]}} 

Je ne suis pas tout à fait sûr de ce que vous voulez afficher, mais vous pouvez accéder individuel chansons en utilisant:

@sngs["current"]["song"][0] 

Si vous souhaitez afficher toutes les chansons à l'intérieur des balises p, par exemple, vous pouvez faire:

<%- @sngs["current"]["song"].each do |song| %> 
    <p><%= song %></p> 
<%- end %> 
+0

Merci! C'est exactement ce dont j'ai besoin! Merci Greg! –

Questions connexes