Guest User

Untitled

a guest
Apr 21st, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. require "rexml/document"
  2. class Item
  3. attr_reader :code, :name, :quantity, :price
  4. def initialize(code, name, quantity, price)
  5. @code = code
  6. @name = name
  7. @quantity = quantity
  8. @price = price
  9. end
  10.  
  11. def validate_item(items)
  12. items.each do |item|
  13. return false if item.code == self.code
  14. end
  15. true
  16. end
  17. end
  18.  
  19. class Customer
  20. def initialize(name, street, city, zip, country)
  21. @name = name
  22. @street = street
  23. @city = city
  24. @zip = zip
  25. @country = country
  26. end
  27. end
  28.  
  29. def load_xml(file)
  30. customers = []
  31. items_list = []
  32. File.open(file,"r") do |file|
  33. doc = REXML::Document.new(file)
  34. doc.root.elements.each do |order|
  35. address = order.elements["address[@type='billing']"]
  36. customers << Customer.new(address.elements["name"].text, address.elements["street"].text, address.elements["city"].text, address.elements["zip"].text, address.elements["country"].text)
  37. #tady to je druhy zpusob jak pracovat s xml, radeji ukazu oba at to chapes :D
  38. doc.each_element('//orders//order//items//item') do |items|
  39. item = Item.new(items.attributes["code"],items.elements["name"].text, items.elements["quantity"].text, items.elements["price"].text)
  40. items_list << item if item.validate_item(items_list)
  41. end
  42. end
  43. end
  44. return customers, items_list
  45. end
  46.  
  47. def print_xml(file)
  48. end
  49.  
  50.  
  51. puts "Nacitam XML"
  52. customers, items = load_xml("orders.xml")
  53. puts "Zapisuje XML"
  54. print_xml("output.xml")
Add Comment
Please, Sign In to add comment