Monday, 9 September 2013

undefined method `von=' for nil:NilClass

undefined method `von=' for nil:NilClass

I wrote this little programm:
require 'open-uri'
require 'nokogiri'
class Kapitel
attr_accessor :von, :bis, :bezeichnung
end
class SubKapitel
attr_accessor :von, :bis, :bezeichnung
end
def parse_file
doc = Nokogiri::XML(File.open("test.xml"))
parse_xml(doc)
end
def parse_xml(doc)
doc.root.elements.each do |node|
parse_kapitel(node)
end
end
def parse_kapitel(node)
if node.node_name.eql? 'nummer'
tmp_kapitel = Kapitel.new
end
if node.node_name.eql? 'gruppe'
tmp_kapitel = SubKapitel.new
end
tmp_kapitel.von = node['V'] if node.node_name.eql? 'von_icd_code'
tmp_kapitel.bis = node['V'] if node.node_name.eql? 'bis_icd_code'
end
puts parse_file
With this programm i parse this xml file:
<kapitel>
<nummer V="1"/>
<von_icd_code V="A00"/>
<bis_icd_code V="B99"/>
<bezeichnung V="Bestimmte infektiöse und parasitäre Krankheiten"/>
<gruppen_liste>
<gruppe>
<von_icd_code V="A00"/>
<bis_icd_code V="A09"/>
<bezeichnung V="Infektiöse Darmkrankheiten"/>
<diagnosen_liste>
<diagnose>
<icd_code V="A00.-"/>
<bezeichnung V="Cholera"/>
<abrechenbar V="n"/>
But somehow i get this error:
test.rb:32:in `parse_kapitel': undefined method `von=' for
nil:NilClass(NoMethodError)
Can somebody help me to solve this problem? I think the problem is that
von-icd-code appears twice in the xml document!

No comments:

Post a Comment