Asp Forum
Home
|
Login
|
Register
|
Search
Forums
>
comp.lang.ruby
Array of Hashes (created by xmlsimple
Maui Guide
4/17/2009 9:48:00 AM
I'm relatively new and this had me thoroughly confused today.
require 'xmlsimple'
myxml = "<a href=\"
http://www.mysite.com/categor...
\">\r\n<img
src=\"
http://www.mysite.com/images/p...
\" width=\"640\"
height=\"480\" alt=\"\" border=\"0\"/></a>"
xmltags = XmlSimple.xml_in(myxml)
href_tag = xmltags['href'] #<-- this works fine
img_tag = xmltags['img'] #<-- this works fine
img_src = xmltags['img']['src'] #<-- this doesn't work
irb(main):221:0> p img_tag
[{"src"=>"
http://www.mysite.com/images/p...
",
"border"=>"0", "height"=>"480", "alt"=>"", "width"=>"640"}]
I can loop through all the hashes in the array (via img_tag.each do |t|)
But isn't there a way to access the img src attribute directly?
Thanks!
--
Posted via
http://www.ruby-...
.
1 Answer
Robert Klemme
4/17/2009 1:25:00 PM
0
2009/4/17 Maui Guide <mauiguide@gmail.com>:
> I'm relatively new and this had me thoroughly confused today.
>
> require 'xmlsimple'
>
> myxml =3D "<a href=3D\"
http://www.mysite.com/categor...
\">\r\n<img
> src=3D\"
http://www.mysite.com/images/p...
\" width=3D\"640\"
> height=3D\"480\" alt=3D\"\" border=3D\"0\"/></a>"
>
> xmltags =3D XmlSimple.xml_in(myxml)
>
> href_tag =3D xmltags['href'] =A0 =A0 =A0 =A0 =A0 =A0 #<-- this works fine
> img_tag =A0=3D xmltags['img'] =A0 =A0 =A0 =A0 =A0 =A0 =A0#<-- this works =
fine
Actually I believe the namings of your variables to be misleading:
there should be an "s" at the end because what you get are multiple
elements. Which is also the explanation why
> img_src =A0=3D xmltags['img']['src'] =A0 =A0 =A0 #<-- this doesn't work
Also, it seems there is no point in traversing the XML document again
to get the same "img" tags again.
> irb(main):221:0> p img_tag
> [{"src"=3D>"
http://www.mysite.com/images/p...
",
> "border"=3D>"0", "height"=3D>"480", "alt"=3D>"", "width"=3D>"640"}]
>
> I can loop through all the hashes in the array (via img_tag.each do |t|)
> But isn't there a way to access the img src attribute directly?
You need to decide whether you expect one or many tags. If you are
interested in one only and if it is guaranteed that there is exactly
one present you can do
href_tag =3D xmltags['href'].first
img_tag =3D xmltags['img'].first
img_src =3D img_tag['src'] #<-- this should work
Cheers
robert
--=20
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestprac...
Servizio di avviso nuovi messaggi
Ricevi direttamente nella tua mail i nuovi messaggi per
Array of Hashes (created by xmlsimple
Inserendo la tua e-mail nella casella sotto, riceverai un avviso tramite posta elettronica ogni volta che il motore di ricerca troverà un nuovo messaggio per te
Il servizio è completamente GRATUITO!
x
Login to ForumsZone
Login with Google
Login with E-Mail & Password