Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > rexml/documentライブラリ > REXML::Childクラス

class REXML::Child

クラスの継承リスト: REXML::Child < REXML::Node < Object < Kernel < BasicObject

要約

あるノード(親ノード)に子ノードとして保持されている ノードを表すクラスです。

親にアクセスするためには REXML::Child#parent を使います。

目次

特異メソッド
new
インスタンスメソッド
bytes document next_sibling next_sibling= parent parent= previous_sibling previous_sibling= remove replace_with

特異メソッド

new(parent = nil) -> REXML::Child[permalink][rdoc]

REXML::Child オブジェクトを生成します。

parent で親ノードを指定します。 親ノードへの追加は行わないため、オブジェクト生成後に親に 適切に設定する必要があります。

通常、このメソッドは直接は使いません。継承先のクラスが適切に このメソッド(initialize)を呼び出します。

[PARAM] parent:
親ノード

インスタンスメソッド

bytes[permalink][rdoc]

[TODO]

document -> REXML::Document | nil[permalink][rdoc]

そのノードが属する document (REXML::Document) を返します。

属する document が存在しない場合は nil を返します。

next_sibling -> REXML::Node[permalink][rdoc]

次の隣接ノードを返します。

REXML::Node#next_sibling_node の別名です。

[SEE_ALSO] REXML::Child#next_sibling=

next_sibling=(other)[permalink][rdoc]

other を self の次の隣接ノードとします。

つまり、親ノードが持つ子ノード列の self の後ろに other を挿入します。

[PARAM] other:
挿入するノード

require 'rexml/document'

a = REXML::Element.new("a")
b = a.add_element("b")
c = REXML::Element.new("c")
b.next_sibling = c
d = REXML::Element.new("d")
b.previous_sibling = d

p a.to_s # => "<a><d/><b/><c/></a>"
parent -> REXML::Parent|nil[permalink][rdoc]

親ノードを返します。

ルートノードの場合は nil を返します。

[SEE_ALSO] REXML::Child#parent=

parent=(other)[permalink][rdoc]

other を親ノードに設定します。

other が元の親ノードと同じならばこのメソッドは何もしません。 self が親を持たない場合は単純に other を親ノードに設定します。 どちらでもない場合は、元の親ノードの子ノード列から self を取り除いて から other を親ノードに設定します。

このメソッドだけでは other の子ノード集合に self は追加されません。 つまりこのメソッドを呼び出した直後は不完全な状態であり、親ノード側を 適切に設定する必要があります。

[PARAM] other:
新たな親ノード

[SEE_ALSO] REXML::Child#parent

previous_sibling -> REXML::Node[permalink][rdoc]

前の隣接ノードを返します。

REXML::Node#previous_sibling_node の別名です。

[SEE_ALSO] REXML::Child#previous_sibling=

previous_sibling=(other)[permalink][rdoc]

other を self の前の隣接ノードとします。

つまり、親ノードが持つ子ノード列の self の前に other を挿入します。

[PARAM] other:
挿入するノード

require 'rexml/document'

a = REXML::Element.new("a")
b = a.add_element("b")
c = REXML::Element.new("c")
b.next_sibling = c
d = REXML::Element.new("d")
b.previous_sibling = d

p a.to_s # => "<a><d/><b/><c/></a>"
remove -> self[permalink][rdoc]

親ノードの子ノード列から self を取り除きます。

replace_with(child) -> self[permalink][rdoc]

親ノードの子ノード列上において、 self を child に置き換えます。

[PARAM] child:
置き換え後のノード

[SEE_ALSO] REXML::Parent#replace_child