From: Robert Klemme Date: 2009-04-17T22:25:24+09:00 Subject: Re: Array of Hashes (created by xmlsimple) 2009/4/17 Maui Guide : > I'm relatively new and this had me thoroughly confused today. > > require 'xmlsimple' > > myxml = "\r\n src=\"http://www.mysite.com/images/picture.jpg\" width=\"640\" > height=\"480\" alt=\"\" border=\"0\"/>" > > xmltags = XmlSimple.xml_in(myxml) > > href_tag = xmltags['href']             #<-- this works fine > img_tag  = xmltags['img']              #<-- 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  = xmltags['img']['src']       #<-- 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"=>"http://www.mysite.com/images/picture.jpg", > "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? 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 = xmltags['href'].first img_tag = xmltags['img'].first img_src = img_tag['src'] #<-- this should work Cheers robert -- remember.guy do |as, often| as.you_can - without end http://blog.rubybestpractices.com/