A Child object is something contained by a parent, and this class contains methods to support that. Most user code will not use this class directly.

Methods
B
D
N
P
R
Included Modules
Attributes
[R] parent
Class Public methods
new( parent = nil )

Constructor. Any inheritors of this class should call super to make sure this method is called.

parent

if supplied, the parent of this child will be set to the supplied value, and self will be added to the parent

# File ../ruby/lib/rexml/child.rb, line 17
def initialize( parent = nil )
  @parent = nil
  # Declare @parent, but don't define it.  The next line sets the
  # parent.
  parent.add( self ) if parent
end
Instance Public methods
bytes()

This doesn't yet handle encodings

# File ../ruby/lib/rexml/child.rb, line 90
def bytes
  document.encoding

  to_s
end
document()
Returns

the document this child belongs to, or nil if this child

belongs to no document

# File ../ruby/lib/rexml/child.rb, line 84
def document
  return parent.document unless parent.nil?
  nil
end
next_sibling=( other )

Sets the next sibling of this child. This can be used to insert a child after some other child.

a = Element.new("a")
b = a.add_element("b")
c = Element.new("c")
b.next_sibling = c
# => <a><b/><c/></a>
# File ../ruby/lib/rexml/child.rb, line 67
def next_sibling=( other )
  parent.insert_after self, other
end
parent=( other )

Sets the parent of this child to the supplied argument.

other

Must be a Parent object. If this object is the same object as the existing parent of this child, no action is taken. Otherwise, this child is removed from the current parent (if one exists), and is added to the new parent.

Returns

The parent added

# File ../ruby/lib/rexml/child.rb, line 51
def parent=( other )
  return @parent if @parent == other
  @parent.delete self if defined? @parent and @parent
  @parent = other
end
previous_sibling=(other)

Sets the previous sibling of this child. This can be used to insert a child before some other child.

a = Element.new("a")
b = a.add_element("b")
c = Element.new("c")
b.previous_sibling = c
# => <a><b/><c/></a>
# File ../ruby/lib/rexml/child.rb, line 78
def previous_sibling=(other)
  parent.insert_before self, other
end
remove()

Removes this child from the parent.

Returns

self

# File ../ruby/lib/rexml/child.rb, line 36
def remove
  unless @parent.nil?
    @parent.delete self
  end
  self
end
replace_with( child )

Replaces this object with another object. Basically, calls REXML::Parent#replace_child

Returns

self

# File ../ruby/lib/rexml/child.rb, line 28
def replace_with( child )
  @parent.replace_child( self, child )
  self
end