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

instance method REXML::Elements#each

each(xpath = nil) {|element| ... } -> [REXML::Elements][permalink][rdoc]

全ての子要素に対しブロックを呼び出します。

xpath を指定した場合には、その XPath 文字列にマッチする要素に対しブロックを呼び出します。

REXML::XPath.each などとは異なり、要素以外のテキストノードなどはすべて無視されることに注意してください。

[PARAM] xpath:
XPath文字列

require 'rexml/document'
require 'rexml/xpath'
doc = REXML::Document.new '<a><b/><c/><d/>sean<b/><c/><d/></a>'
# <b/>,<c/>,<d/>,<b/>,<c/>, <d/> がブロックに渡される
doc.root.elements.each {|e|p e}
# <b/>, <b/> がブロックに渡される
doc.root.elements.each('b') {|e|p e}  #-> Yields b, b elements
# <b/>,<c/>,<d/>,<b/>,<c/>,<d/> がブロックに渡される
doc.root.elements.each('child::node()')  {|e|p e}
# <b/>,<c/>,<d/>,"sean",<b/>,<c/>,<d/> がブロックに渡される
REXML::XPath.each(doc.root, 'child::node()'){|node| p node }