# class REXML::Child

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.

### Attributes

parent[R]

### Public Class Methods

new( parent = nil ) click to toggle source

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 lib/rexml/child.rb, line 18
    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

### Public Instance Methods

bytes() click to toggle source

This doesn't yet handle encodings

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

      to_s
    end

document() click to toggle source

Returns

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

belongs to no document

    # File lib/rexml/child.rb, line 85
    def document
      return parent.document unless parent.nil?
      nil
    end

next_sibling=( other ) click to toggle source

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 lib/rexml/child.rb, line 68
    def next_sibling=( other )
      parent.insert_after self, other
    end

parent=( other ) click to toggle source

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 lib/rexml/child.rb, line 52
    def parent=( other )
      return @parent if @parent == other
      @parent.delete self if defined? @parent and @parent
      @parent = other
    end

previous_sibling=(other) click to toggle source

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 lib/rexml/child.rb, line 79
    def previous_sibling=(other)
      parent.insert_before self, other
    end

remove() click to toggle source

Removes this child from the parent.

Returns

  self

    # File lib/rexml/child.rb, line 37
    def remove
      unless @parent.nil?
        @parent.delete self
      end
      self
    end

replace_with( child ) click to toggle source

Replaces this object with another object. Basically, calls `Parent.replace_child`

Returns

  self

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