Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require "rexml/document"
- class Item
- attr_reader :code, :name, :quantity, :price
- def initialize(code, name, quantity, price)
- @code = code
- @name = name
- @quantity = quantity
- @price = price
- end
- def validate_item(items)
- items.each do |item|
- return false if item.code == self.code
- end
- true
- end
- end
- class Customer
- def initialize(name, street, city, zip, country)
- @name = name
- @street = street
- @city = city
- @zip = zip
- @country = country
- end
- end
- def load_xml(file)
- customers = []
- items_list = []
- File.open(file,"r") do |file|
- doc = REXML::Document.new(file)
- doc.root.elements.each do |order|
- address = order.elements["address[@type='billing']"]
- customers << Customer.new(address.elements["name"].text, address.elements["street"].text, address.elements["city"].text, address.elements["zip"].text, address.elements["country"].text)
- #tady to je druhy zpusob jak pracovat s xml, radeji ukazu oba at to chapes :D
- doc.each_element('//orders//order//items//item') do |items|
- item = Item.new(items.attributes["code"],items.elements["name"].text, items.elements["quantity"].text, items.elements["price"].text)
- items_list << item if item.validate_item(items_list)
- end
- end
- end
- return customers, items_list
- end
- def print_xml(file)
- end
- puts "Nacitam XML"
- customers, items = load_xml("orders.xml")
- puts "Zapisuje XML"
- print_xml("output.xml")
Add Comment
Please, Sign In to add comment