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

class REXML::Parent

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

要約

あるノードの親ノードとなりうるノードを表すクラスです。

子ノードにアクセスするための各種メソッドを持っています。

目次

特異メソッド
new
インスタンスメソッド
<< add push [] []= children to_a deep_clone delete delete_at delete_if each each_child each_index index insert_after insert_before length size parent? replace_child unshift

特異メソッド

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

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

子ノード列は空列に初期化されます。

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

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

[PARAM] parent:
親ノード

インスタンスメソッド

add(object) -> ()[permalink][rdoc]
push(object) -> ()
self << object -> ()

object を子ノード列の最後に追加します。

object の親ノードには self が設定されます。

[PARAM] object:
追加するノード
self[index] -> REXML::Child | nil[permalink][rdoc]

子ノード列上の index で指定された場所のノードを返します。

範囲外を指定した場合は nil を返します。

self[index] = node[permalink][rdoc]
self[range] = node
self[start, length] = node

子ノード列上の指定した場所を node で置き換えます。

Array#[]= と同じ指定が可能です。

[PARAM] index:
変更場所の index (Integer)
[PARAM] range:
変更場所の範囲 (Range)
[PARAM] start:
変更範囲の最初の位置 (Integer)
[PARAM] length:
変更範囲の個数 (Integer)
[PARAM] node:
置き換えるノード
to_a -> [REXML::Child][permalink][rdoc]
children -> [REXML::Child]

子ノード列の配列を返します。

deep_clone -> REXML::Parent[permalink][rdoc]

ノードを複製し、複製されたノードを返します。

子ノードも複製されます。

delete(object) -> REXML::Child | nil[permalink][rdoc]

object を子ノード列から削除します。

削除されたノードの親は nil に設定されます。

削除したノードを返します。削除されなかった場合は nil を返します。

[PARAM] object:
削除するノード
delete_at(index) -> REXML::Child | nil[permalink][rdoc]

子ノード列上の index で指定された場所の要素を取り除きます。

取り除いだノードを返します。indexが範囲外である場合は何もせず nil を返します。

delete_if {|object| ... } -> ()[permalink][rdoc]

各子ノードに対しブロックを呼び出し、真を返したノードを削除します。

ブロックを省略した場合は、各子ノードに対し上の操作を する Enumerator オブジェクトを返します。

each {|object| ... } -> ()[permalink][rdoc]
each_child {|object| ... } -> ()

各子ノードに対しブロックを呼び出します。

ブロックを省略した場合は、各子ノードに対し操作を 繰り返すような Enumerator オブジェクトを返します。

each_index {|index| ... } -> ()[permalink][rdoc]

各子ノードのインデックスに対しブロックを呼び出します。

ブロックが省略された場合は上のような繰り返しをする Enumerator オブジェクトを返します。

index(child) -> Integer | nil[permalink][rdoc]

child の子ノード列上での位置を返します。

child が子ノードでない場合には nil を返します。

insert_after(child1, child2) -> self[permalink][rdoc]

child2 を child1 で指定したノードの後ろに挿入します。

child1 が REXML::Child のインスタンスであるならば、その 子ノードの後ろに挿入されます。 child1 が 文字列であるならば、XPath で場所を指定します。 具体的には REXML::XPath.first(self, child1) で特定されるノードの 後ろに挿入されます。

挿入されるノード(child2)の親は self に変更されます。

[PARAM] child1:
挿入場所の指定
[PARAM] child2:
挿入されるノード
insert_before(child1, child2) -> self[permalink][rdoc]

child2 を child1 で指定したノードの前に挿入します。

child1 が REXML::Child のインスタンスであるならば、その 子ノードの前に挿入されます。 child1 が 文字列であるならば、XPath で場所を指定します。 具体的には REXML::XPath.first(self, child1) で特定されるノードの 前に挿入されます。

挿入されるノード(child2)の親は self に変更されます。

[PARAM] child1:
挿入場所の指定
[PARAM] child2:
挿入されるノード
size -> Integer[permalink][rdoc]
length -> Integer

保持している子ノードの数を返します。

parent? -> bool[permalink][rdoc]

true を返します。

[SEE_ALSO] REXML::Node#parent

replace_child(to_replace, replacement) -> ()[permalink][rdoc]

子ノード列上の to_replace を replacement に置き換えます。

to_replace の parent は nil に、 replacement の parent は selfに変更されます。

[PARAM] to_replace:
置き換え元のノード
[PARAM] replacement:
置き換え先のノード
unshift(object) -> ()[permalink][rdoc]

object を子ノード列の最初に追加します。

object の親ノードには self が設定されます。

[PARAM] object:
追加するノード