No matter what I do, I can't seem to get valid XML to load into REXML
for parsing. Anybody have any idea what I'm doing wrong?
Using Ruby 2.0.0 on a 64 bit machine with Windows 7 Home Premium. I do
use pik and I am sure the correct version is active (different gems):
$pik list
187: ruby 1.8.7 (2012-02-08 patchlevel 358) [i386-mingw32]
* 200: ruby 2.0.0p247 (2013-06-27) [x64-mingw32]
···
====================
require 'rubygems'
require 'openssl'
require 'net/https'
require 'rspec'
require 'rexml/document'
include REXML
#SSL Key
cacert_file = File.join(%w{c: Project GrabSomeData cacert.pem})
#RE: Auto-downloader here to obtain from curl.haxx.se/ca/cacert.pem
#Easy to modify URL perametres
$base_url = "https://maps.googleapis.com/"
$uri = URI.parse($base_url)
places_call = "maps/api/place/nearbysearch/"
key_sensor = "key=[ENTER YOUR DEVELOPER KEY]&sensor=false"
specific_detail =
"&location=53.541195,-113.490331&radius=200&types=bakery|bar|cafe|night_club|bar|restaurant"
$xml_url = $base_url + places_call + "xml?" + key_sensor +
specific_detail
#Get the file and hold in memory
http = Net::HTTP.new($uri.host, $uri.port)
http.use_ssl = true
http.cert = OpenSSL::X509::Certificate.new(File.read cacert_file)
request = Net::HTTP::Get.new($xml_url)
response = http.request(request)
#Tried both with and without the doctype declaration, staying without
#since that was the format of the example file
#at http://www.germane-software.com/software/rexml/index.html#id2248146
xml = response.body.gsub('<?xml version="1.0" encoding="UTF-8"?>','')
#Pull in for REXML
doc = Document.new xml
Result:
<UNDEFINED> ... </>
The same thing happens when I save the example file and import it:
irb(main):047:0> xml = File.read(examples/Rexml.xml)
NameError: undefined local variable or method `examples' for main:Object
from (irb):47
from C:/Users/Julie/.pik/rubies/Ruby-200-p195/bin/irb:12:in
`<main>'
irb(main):048:0> xml = File.read(samples/Rexml.xml)
NameError: undefined local variable or method `samples' for main:Object
from (irb):48
from C:/Users/Julie/.pik/rubies/Ruby-200-p195/bin/irb:12:in
`<main>'
irb(main):049:0> xml = File.read('samples/Rexml.xml')
=> "<inventory title=\"OmniCorp Store #45x10^3\">\n <section
name=\"health\">\n <item upc=\"123456789\" stock=\"12\">\n
<name>Invisibility Cream</name>\n <price>14.50</price>\n
<description>Makes you invisible</description>\n </item>\n <item
upc=\"445322344\" stock=\"18\">\n <name>Levitation Salve</name>\n
<price>23.99</price>\n <description>Levitate yourself for up to 3 hours
per application</description>\n </item>\n </section>\n <section
name=\"food\">\n <item upc=\"485672034\" stock=\"653\">\n <name
Blork and Freen Instameal</name>\n <price>4.95</price>\n <description
A tasty meal in a tablet; just add water</description>\n </item>\n
<itemupc=\"132957764\" stock=\"44\">\n <name>Grob winglets</name>\n
<price>3.56</price>\n <description>Tender winglets of Grob. Just add
water</description>\n </item>\n </section>\n</inventory>"
irb(main):050:0> doc = Document.new xml
=> <UNDEFINED> ... </>
--
Posted via http://www.ruby-forum.com/\.