Path: | lib/libxml/hpricot.rb |
Last Update: | Sat Mar 03 17:13:20 +0000 2012 |
Provide hpricot API for libxml. Provided by Michael Guterl, inspired by http://thebogles.com/blog/an-hpricot-style-interface-to-libxml
class String
def to_libxml_doc xp = XML::Parser.new xp.string = self xp.parse end
end
module LibXML
module XML class Document alias :search :find end class Node # find the child node with the given xpath def at(xpath) self.find_first(xpath) end # find the array of child nodes matching the given xpath def search(xpath) results = self.find(xpath).to_a if block_given? results.each do |result| yield result end end return results end def /(xpath) search(xpath) end # return the inner contents of this node as a string def inner_xml child.to_s end # alias for inner_xml def inner_html inner_xml end # return this node and its contents as an xml string def to_xml self.to_s end # alias for path def xpath self.path end def find_with_default_ns(xpath_expr, namespace=nil) find_base(xpath_expr, namespace || default_namespaces) end def find_first_with_default_ns(xpath_expr, namespace=nil) find_first_base(xpath_expr, namespace || default_namespaces) end alias_method :find_base, :find unless method_defined?(:find_base) alias_method :find, :find_with_default_ns alias_method :find_first_base, :find_first unless method_defined?(:find_first_base) alias_method :find_first, :find_first_with_default_ns alias :child? :first? alias :children? :first? alias :child :first end end
end