Happymapper(fork) - 来自多个类的输出

say*_*yth 5 ruby xml-parsing

我的问题涉及根据https://github.com/dam5s/happymapper上的文档创建输出,这是使用nokogiri的happymapper的分支.

我在使用文档时使用了两个例子.这是我的榜样.

xml_doc = <<EOF
<address location='home'>
  <street>Milchstrasse</street>
  <street>Another Street</street>
  <housenumber>23</housenumber>
  <postcode>26131</postcode>
  <city>Oldenburg</city>
  <country code="de">Germany</country>
</address>
EOF

class Address
  include HappyMapper

  tag 'address'

  element :housenumber, Integer, :tag => "housenumber"
end

class Country
  include HappyMapper

  tag 'country'

  attribute :code, String
  content :name, String

end

outputs = Country.parse(xml_doc)
outputs.each do |output|
  puts output.code
  puts output.name
  puts output.housenumber
end
Run Code Online (Sandbox Code Playgroud)

预期产出

de
Germany
23
Run Code Online (Sandbox Code Playgroud)

我的输出

sayth@sayth-E6410 ~/race (master?)$ ruby read_race.rb            [ruby-2.4.0p0]
de
Germany
read_race.rb:49:in `block in <main>': undefined method `housenumber' for #<Country:0x0055e55facf798 @code="de", @name="Germany"> (NoMethodError)
    from read_race.rb:46:in `each'
    from read_race.rb:46:in `<main>'
Run Code Online (Sandbox Code Playgroud)