def self.best_available
parser = nil
jruby = [USE_JSTAX, USE_NOKOGIRI, USE_JREXML]
ruby = [USE_NOKOGIRI, USE_LIBXML]
if defined? JRUBY_VERSION
begin
java.lang.Class.forName("javax.xml.stream.XMLInputFactory")
parser = USE_JSTAX
rescue java.lang.ClassNotFoundException
end
unless parser
begin
require 'nokogiri'
parser = USE_NOKOGIRI
rescue LoadError
end
end
unless parser
begin
require 'jrexml'
parser = USE_JREXML
rescue LoadError
end
end
else
begin
require 'nokogiri'
parser = USE_NOKOGIRI
rescue LoadError
end
unless parser
begin
require 'xml'
parser = USE_LIBXML
rescue LoadError
end
end
end
parser = USE_REXML unless parser
parser
end