class Krikri::XmlParser::Value
An XML Parser
Value
node class @see Krikri::Parser::Value
Attributes
namespaces[RW]
node[RW]
Public Class Methods
new(node, namespaces)
click to toggle source
# File lib/krikri/parsers/xml_parser.rb, line 39 def initialize(node, namespaces) node = node.root if node.xml? @node = node @namespaces = namespaces end
Public Instance Methods
attributes()
click to toggle source
# File lib/krikri/parsers/xml_parser.rb, line 45 def attributes @node.attributes.keys.map(&:to_sym) end
children()
click to toggle source
# File lib/krikri/parsers/xml_parser.rb, line 49 def children @node.element_children.map do |child| return child.name unless child.namespace "#{@namespaces.key(child.namespace.href)}:#{child.name}" end end
value()
click to toggle source
# File lib/krikri/parsers/xml_parser.rb, line 56 def value @node.content end
values?()
click to toggle source
# File lib/krikri/parsers/xml_parser.rb, line 60 def values? !select_values.empty? end
Private Instance Methods
attribute(name)
click to toggle source
# File lib/krikri/parsers/xml_parser.rb, line 78 def attribute(name) @node.attributes[name.to_s].value end
get_child_nodes(name)
click to toggle source
@see Krikri::Parser#get_child_nodes
@param name_exp [String] Element name @return [Krikri::Parser::ValueArray]
# File lib/krikri/parsers/xml_parser.rb, line 71 def get_child_nodes(name) Krikri::Parser::ValueArray.new( @node.xpath("#{@node.path}/#{name}", @namespaces) .map { |node| self.class.new(node, @namespaces) } ) end
select_values()
click to toggle source
# File lib/krikri/parsers/xml_parser.rb, line 82 def select_values Krikri::Parser::ValueArray.new(@node.children.select(&:text?)) end