Convenience methods for parsing XML/HTML.
This commit is contained in:
parent
efc3827865
commit
71f2b42074
|
@ -2,6 +2,9 @@ require 'ast'
|
|||
require 'set'
|
||||
require 'stringio'
|
||||
|
||||
require_relative 'oga/version'
|
||||
require_relative 'oga/oga'
|
||||
|
||||
# Load these first so that the native extensions don't have to define the
|
||||
# Oga::XML namespace.
|
||||
require_relative 'oga/xml/lexer'
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
module Oga
|
||||
##
|
||||
# Parses the given XML document.
|
||||
#
|
||||
# @example
|
||||
# document = Oga.parse_xml('<root>Hello</root>')
|
||||
#
|
||||
# @param [String|IO] xml The XML input to parse.
|
||||
# @return [Oga::XML::Document]
|
||||
#
|
||||
def self.parse_xml(xml)
|
||||
return XML::Parser.new(xml).parse
|
||||
end
|
||||
|
||||
##
|
||||
# Parses the given HTML document.
|
||||
#
|
||||
# @example
|
||||
# document = Oga.parse_html('<html>...</html>')
|
||||
#
|
||||
# @param [String|IO] html The HTML input to parse.
|
||||
# @return [Oga::XML::Document]
|
||||
#
|
||||
def self.parse_html(html)
|
||||
return HTML::Parser.new(html).parse
|
||||
end
|
||||
end # Oga
|
|
@ -0,0 +1,19 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Oga do
|
||||
context 'parse_xml' do
|
||||
example 'parse an XML document' do
|
||||
document = described_class.parse_xml('<root>foo</root>')
|
||||
|
||||
document.is_a?(Oga::XML::Document).should == true
|
||||
end
|
||||
end
|
||||
|
||||
context 'parse_html' do
|
||||
example 'parse an HTML document' do
|
||||
document = described_class.parse_xml('<html><body></body></html>')
|
||||
|
||||
document.is_a?(Oga::XML::Document).should == true
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue