Sorumu, çıkış noktasını, nokogiri kullanan happymapper'ın çatalı olan https://github.com/dam5s/happymapper belgesine dayanarak oluşturuyor.Happymapper (fork) - birden fazla sınıftan çıktı
Dökümantasyonda 2 örnek kullandım. Bu benim örneğim.
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
Beklenen çıkış
de
Germany
23
Benim çıkış
[email protected] ~/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>'
Belki de "Ülke" sınıfına 'element: housenumber, Integer,: tag =>" housenumber "' eklemeniz gerekir. Çünkü "housenumber" adında bir yöntem tanımlamadığınız için ondan arama yapabilirsiniz. –
Değil% 100 emin iyi örnekler sadece netlik değil. Bir örnekte sınıfta bir işlev oluşturuyorlar, ancak bu has_many öğeleri içindi. – sayth