On 2007-04-24 13:17:37 +0200, Brian Candler <B.Candler / pobox.com> said:

> On Tue, Apr 24, 2007 at 07:45:04PM +0900, Josselin wrote:
>> I receive from yahoo weather an Hash like this one,
>> 
>> response
>> => {"xmlns:geo"=>"http://www.w3.org/2003/01/geo/wgs84_pos#",
>> "xmlns:yweather"=>"http://xml.weather.yahoo.com/ns/rss/1.0",
>> "version"=>"2.0", "channel"=>[{"title"=>["Yahoo! Weather - Error"],
>> "description"=>["Yahoo! Weather Error"], "item"=>[{"title"=>["City not
>> found"], "description"=>["\n Sorry, your location 'dfghh' was not
>> found. Please try again.\n "]}]}]}
>> 
>> I need to test the response for an error on channel title,  I wrote :
>> 
>> (response.fetch("channel")[0]).fetch("title")[0]
>> => "Yahoo! Weather - Error"
>> 
>> to get the string, but is there any simpler way to do it ?
> 
> response["channel"][0]["title"][0]
> 
> or:
> 
> response["channel"].first["title"].first
> 
> But it also depends on how you are parsing the XML. If you're using
> xmlsimple then you can pass option 'ForceArray' => false, which gets rid of
> the arrays. Then you can do
> 
> response["channel"]["title"]

thanks a lot Brian, that's exactly what I am using... so .. simple !

joss