Class Child
Class Child includes module Node; see Tasks for Node.
:include: ../tocs/child_toc.rdoc
Relationships
Task: Set the Parent
Use method Child#parent= to set the parent:
e0 = REXML::Element.new('foo')
e1 = REXML::Element.new('bar')
e1.parent # => nil
e1.parent = e0
e1.parent # => <foo/>
Task: Insert Previous Sibling
Use method Child#previous_sibling= to insert a previous sibling:
xml_string = '<root><a/><c/></root>'
d = REXML::Document.new(xml_string)
d.root.to_a # => [<a/>, <c/>]
c = d.root[1] # => <c/>
b = REXML::Element.new('b')
c.previous_sibling = b
d.root.to_a # => [<a/>, <b/>, <c/>]
Task: Insert Next Sibling
Use method Child#next_sibling= to insert a previous sibling:
xml_string = '<root><a/><c/></root>'
d = REXML::Document.new(xml_string)
d.root.to_a # => [<a/>, <c/>]
a = d.root[0] # => <a/>
b = REXML::Element.new('b')
a.next_sibling = b
d.root.to_a # => [<a/>, <b/>, <c/>]
Removal or Replacement
Task: Remove Child from Parent
Use method Child#remove to remove a child from its parent; returns the removed child:
xml_string = '<root><a/><b/><c/></root>'
d = REXML::Document.new(xml_string)
d.root.to_a # => [<a/>, <b/>, <c/>]
b = d.root[1] # => <b/>
b.remove # => <b/>
d.root.to_a # => [<a/>, <c/>]
Task: Replace Child
Use method Child#replace_with to replace a child; returns the replaced child:
xml_string = '<root><a/><b/><c/></root>'
d = REXML::Document.new(xml_string)
d.root.to_a # => [<a/>, <b/>, <c/>]
b = d.root[1] # => <b/>
d = REXML::Element.new('d')
b.replace_with(d) # => <b/>
d.root.to_a # => [<a/>, <d/>, <c/>]
Document
Task: Get the Document
Use method Child#document to get the document for the child:
xml_string = '<root><a/><b/><c/></root>'
d = REXML::Document.new(xml_string)
d.root.to_a # => [<a/>, <b/>, <c/>]
b = d.root[1] # => <b/>
b.document == d # => true
REXML::Child.new.document # => nil