How to parse info from an xml response

Hi all! In my app I want to detect what country a visitor is viewing from by their IP.

Although it's by no means perfect, the simplest option I've found is by using this site: http://api.hostip.info/

by passing the ip address as a query, this site returns an xml file with the country as one of the tags.

http://api.hostip.info/?ip=6.255.255.255 returns (amongst other things) "<countryAbbrev>US</countryAbbrev>"

Could somebody suggest the best way to assert the value of this particular tag in the xml file?

Thanks

Gavin

Hi all! In my app I want to detect what country a visitor is viewing from by their IP.

Although it's by no means perfect, the simplest option I've found is by using this site: http://api.hostip.info/

by passing the ip address as a query, this site returns an xml file with the country as one of the tags.

http://api.hostip.info/?ip=6.255.255.255 returns (amongst other things) "<countryAbbrev>US</countryAbbrev>"

Could somebody suggest the best way to assert the value of this particular tag in the xml file?

hpricot or that new one... nokugirl (or something like that). I know hpricot can parse XML easily.

require ‘rubygems’ require ‘hpricot’ require ‘net/http’

html = Net::HTTP.get(URI.parse(“http://api.hostip.info/?ip=6.255.255.255”)) doc = Hpricot(html) country_abbrev = doc.search(“countryabbrev”)

puts country_abbrev.inner_text()

Exactly what I was looking for!

Thanks for your help :slight_smile: