Method: REXML::Element#root_node
- Defined in:
- lib/rexml/element.rb
#root_node ⇒ Object
:call-seq:
root_node -> document or element
Returns the most distant ancestor of self.
When the element is part of a document, returns the root node of the document. Note that the root node is different from the document element; in this example a is document element and the root node is its parent:
d = REXML::Document.new('<a><b><c/></b></a>')
top_element = d.first # => <a> ... </>
child = top_element.first # => <b> ... </>
d.root_node == d # => true
top_element.root_node == d # => true
child.root_node == d # => true
When the element is not part of a document, but does have ancestor elements, returns the most distant ancestor element:
e0 = REXML::Element.new('foo')
e1 = REXML::Element.new('bar')
e1.parent = e0
e2 = REXML::Element.new('baz')
e2.parent = e1
e2.root_node == e0 # => true
When the element has no ancestor elements, returns self:
e = REXML::Element.new('foo')
e.root_node == e # => true
Related: #root, #document.
422 423 424 |
# File 'lib/rexml/element.rb', line 422 def root_node parent.nil? ? self : parent.root_node end |