Class: REXML::XPath

Class | REXML::XPath
In: | rexml/xpath.rb
Parent: | Object

Wrapper class. Use this class to access the XPath functions.

### Methods

each first match

### Included Modules

Functions

### Constants

EMPTY_HASH | = | {}

### Public Class methods

each(element, path=nil, namespaces={})

Itterates over nodes that match the given path, calling the supplied block with the match.

element: | The context element
path: | The xpath to search for. If not supplied or nil, defaults to ’*’
namespaces: | If supplied, a Hash which defines a namespace mapping

     XPath.each( node ) { |el| ... }
     XPath.each( node, '/*[@attr='v']' ) { |el| ... }
     XPath.each( node, 'ancestor::x' ) { |el| ... }

[Source]

    # File rexml/xpath.rb, line 45
                    def XPath::each element, path=nil, namespaces={}, variables={}, &block
          raise "The namespaces argument, if supplied, must be a hash object." unless namespaces.kind_of? Hash
          raise "The variables argument, if supplied, must be a hash object." unless variables.kind_of? Hash
                            parser = XPathParser.new
                            parser.namespaces = namespaces
                            parser.variables = variables
                            path = "*" unless path
                            element = [element] unless element.kind_of? Array
                            parser.parse(path, element).each( &block )
                    end

first(element, path=nil, namespaces={})

Finds and returns the first node that matches the supplied xpath.

element: | The context element
path: | The xpath to search for. If not supplied or nil, returns the first node matching ’*’.
namespaces: | If supplied, a Hash which defines a namespace mapping.

     XPath.first( node )
     XPath.first( doc, "//b"} )
     XPath.first( node, "a/x:b", { "x"=>"http://doofus" } )

[Source]

    # File rexml/xpath.rb, line 22
        def XPath::first element, path=nil, namespaces={}, variables={}
          raise "The namespaces argument, if supplied, must be a hash object." unless namespaces.kind_of? Hash
          raise "The variables argument, if supplied, must be a hash object." unless variables.kind_of? Hash
                            parser = XPathParser.new
                            parser.namespaces = namespaces
                            parser.variables = variables
                            path = "*" unless path
                            element = [element] unless element.kind_of? Array
                            parser.parse(path, element).flatten[0]
                    end

match(element, path=nil, namespaces={})

Returns an array of nodes matching a given XPath.

[Source]

    # File rexml/xpath.rb, line 57
                    def XPath::match element, path=nil, namespaces={}, variables={}
                            parser = XPathParser.new
                            parser.namespaces = namespaces
                            parser.variables = variables
                            path = "*" unless path
                            element = [element] unless element.kind_of? Array
                            parser.parse(path,element)
                    end

[Validate]