Class: Awis::Utils::XML
- Inherits:
-
Object
- Object
- Awis::Utils::XML
- Defined in:
- lib/awis/utils/xml.rb
Instance Method Summary collapse
- #each_node(attributes_in_path = false) ⇒ Object
-
#initialize(data) ⇒ XML
constructor
A new instance of XML.
Constructor Details
#initialize(data) ⇒ XML
Returns a new instance of XML.
4 5 6 |
# File 'lib/awis/utils/xml.rb', line 4 def initialize(data) @data = data end |
Instance Method Details
#each_node(attributes_in_path = false) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/awis/utils/xml.rb', line 8 def each_node(attributes_in_path = false) reader = Nokogiri::XML::Reader(@data) nodes = [''] reader.each do |node| if node.node_type == Nokogiri::XML::Reader::TYPE_ELEMENT if attributes_in_path && node.attributes.size > 0 attributes = [] node.attributes.sort.each do |name, value| attributes << "@#{name}=#{value}" end nodes << "#{node.name}/#{attributes.join('/')}" else nodes << node.name end path = nodes.join('/') yield node, path end nodes.pop if node.node_type == Nokogiri::XML::Reader::TYPE_END_ELEMENT || node.self_closing? # End tag end end |