Hi!
I’m trying to parse a XML document (MusicXML), I found that here
something about it:
http://railstips.org/blog/archives/2008/08/11/parsing-xml-with-ruby/
- I chose Hpricot, but I have a problem: in XML document, which I’m
trying to parse, there are names of blocks with minus sign, for
example . In Hpricot it should looks something like
this:
xml = File.read(path)
puts Benchmark.measure {
doc = Hpricot::XML(xml)
(doc/:score-partwise).each do |s|
# here we have s as each score-partwise block
end
}
But it throws undefined local variable or method `partwise’ for
#MusicxmlController:0xb6badff4, becouse in symbols names minus sign
is prohibited. How can I make a symbol name with minus sign?
cheers,
simon
On 19 Jul 2010, at 11:37, Szymon Przybył wrote:
is prohibited. How can I make a symbol name with minus sign?
Just use a string instead:
(doc/‘score-partwise’)
Best regards
Peter De Berdt
Szymon Przybył wrote:
[…]
But it throws undefined local variable or method `partwise’ for
#MusicxmlController:0xb6badff4, becouse in symbols names minus sign
is prohibited. How can I make a symbol name with minus sign?
Well, you can actually have any characters you like in a symbol name.
The :name syntax only works if the symbol name doesn’t contain “weird”
characters, but the following syntaxes will work regardless:
:‘name-with-weird-characters’
:“name-with-weird-characters-and-#{variable_interpolation}”
…or just use String#to_sym .
We are now well out of Rails territory and into basic Ruby, so further
discussion probably should go to the main Ruby list.
cheers,
simon
Best,
Marnen Laibow-Koser
http://www.marnen.org
[email protected]