Extended maintenance of Ruby versions 1.8.7 and 1.9.2 ended on July 31, 2014. Read more

In Files

  • rexml/xpath.rb

Parent

Included Modules

REXML::XPath

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

Constants

EMPTY_HASH

Public Class Methods

each(element, path=nil, namespaces=nil, variables={}) click to toggle source

Iterates 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| ... }
 
               # File rexml/xpath.rb, line 45
          def XPath::each element, path=nil, namespaces=nil, variables={}, &block
raise "The namespaces argument, if supplied, must be a hash object." unless namespaces.nil? or 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=nil, variables={}) click to toggle source

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" } )
 
               # File rexml/xpath.rb, line 22
def XPath::first element, path=nil, namespaces=nil, variables={}
  raise "The namespaces argument, if supplied, must be a hash object." unless namespaces.nil? or 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=nil, variables={}) click to toggle source

Returns an array of nodes matching a given XPath.

 
               # File rexml/xpath.rb, line 57
def XPath::match element, path=nil, namespaces=nil, 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
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.

blog comments powered by Disqus