Câu hỏi của tôi liên quan đến việc tạo đầu ra dựa trên tài liệu tại https://github.com/dam5s/happymapper là ngã ba của happymapper sử dụng nokogiri.Happymapper (ngã ba) - đầu ra từ nhiều lớp
Tôi đã sử dụng 2 ví dụ về cách xử lý tài liệu. Đây là ví dụ của tôi.
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
sản lượng dự kiến
de
Germany
23
đầu ra của tôi
[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>'
Có thể bạn cần thêm 'phần tử: housenumber, Integer,: tag =>" housenumber "' vào lớp 'Quốc gia'. Bởi vì bạn chưa định nghĩa một phương thức gọi là 'housenumber' bạn có thể gọi từ nó. –
Không chắc chắn 100% ví dụ tốt chỉ không hoàn toàn rõ ràng. Trong một ví dụ, chúng tạo ra một hàm trong lớp nhưng đó là các phần tử has_many. – sayth