REXML::XPath (Class)

In: rexml/xpath.rb
Parent: Object

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

Methods

each   first   match  

Constants

EMPTY_HASH = {}

Included Modules

Functions

Public Class methods

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 43
                def XPath::each element, path=nil, namespaces={}, variables={}, &block
                        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

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={}
                        parser = XPathParser.new
                        parser.namespaces = namespaces
                        parser.variables = variables
                        path = "*" unless path
                        element = [element] unless element.kind_of? Array
                        parser.parse(path, element)[0]
                end

Returns an array of nodes matching a given XPath.

[Source]

# File rexml/xpath.rb, line 53
                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]