Ruby 1.9.3 リファレンスマニュアル > ライブラリ一覧 > rexml/documentライブラリ > REXML::Elementクラス > each_element_with_text
each_element_with_text(text = nil, max = 0, name = nil) {|element| ... } -> ()
[permalink][rdoc]テキストを子ノードとして 持つすべての子要素を引数としてブロックを呼び出します。
text を指定すると、テキストの内容が text であるもののみを対象とします。 maxを指定すると、対象となる子要素の先頭 max 個のみが対象となります。 name を指定すると、それは xpath 文字列と見なされ、 それにマッチするもののみが対象となります。
max に 0 を指定すると、max の指定は無視されます(0個ではありません)。
require 'rexml/document' doc = REXML::Document.new '<a><b>b</b><c>b</c><d>d</d><e/></a>' doc.root.each_element_with_text {|e|p e} # >> <b> ... </> # >> <c> ... </> # >> <d> ... </> doc.root.each_element_with_text('b'){|e|p e} # >> <b> ... </> # >> <c> ... </> doc.root.each_element_with_text('b', 1){|e|p e} # >> <b> ... </> doc.root.each_element_with_text(nil, 0, 'd'){|e|p e} # >> <d> ... </>