lib/multi_xml/parsers/nokogiri.rb
require "nokogiri" unless defined?(Nokogiri)
require "multi_xml/parsers/libxml2_parser"
module MultiXml
module Parsers
module Nokogiri # :nodoc:
include Libxml2Parser
extend self
def parse_error
::Nokogiri::XML::SyntaxError
end
def parse(xml)
doc = ::Nokogiri::XML(xml)
raise(doc.errors.first) unless doc.errors.empty?
node_to_hash(doc.root)
end
private
def each_child(node, &block)
node.children.each(&block)
end
def each_attr(node, &block)
node.attribute_nodes.each(&block)
end
def node_name(node)
node.node_name
end
end
end
end