require 'rexml/functions'
require 'rexml/xpath_parser'

module REXML
	class XPath
		include Functions
		EMPTY_HASH = {}

		def XPath::first element, path=nil, namespaces=nil
			parser = XPathParser.new
			parser.namespaces = namespaces
			path = "*" unless path
			parser.parse(path, [element])[0]
		end

		def XPath::each element, path=nil, namespaces=nil, &block
			parser = XPathParser.new
			parser.namespaces = namespaces
			path = "*" unless path
			parser.parse(path, [element]).each( &block )
		end

		def XPath::match element, path=nil, namespaces=nil
			raise "nil is not a valid xpath" unless path
			parser = XPathParser.new
			parser.namespaces = namespaces
			path = "*" unless path
			parser.parse(path,[element])
		end
	end
end
