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

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

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

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]

ruby-doc.org is hosted and maintained by James Britt and Neurogami, LLC, a Ruby consulting company. The site was created in 2002 as part of the Ruby Documentation Project to promote the Ruby language and to help other Ruby hackers.

Documentation content on ruby-doc.org is provided by remarkable members of the Ruby community.

For more information on the Ruby programming language, visit ruby-lang.org.

For information about this site or Neurogami, contact james@neurogami.com.