Method: REXML::Element#each_element_with_text
- Defined in:
- lib/rexml/element.rb
#each_element_with_text(text = nil, max = 0, name = nil, &block) ⇒ Object
:call-seq:
each_element_with_text(text = nil, max = 0, xpath = nil) {|e| ... }
Calls the given block with each child element that meets given criteria.
With no arguments, calls the block with each child element that has text:
d = REXML::Document.new '<a><b>b</b><c>b</c><d>d</d><e/></a>'
a = d.root
a.each_element_with_text {|e| p e }
Output:
<b> ... </>
<c> ... </>
<d> ... </>
With the single string argument text, calls the block with each element that has exactly that text:
a.each_element_with_text('b') {|e| p e }
Output:
<b> ... </>
<c> ... </>
With argument text and integer argument max, calls the block with at most max elements:
a.each_element_with_text('b', 1) {|e| p e }
Output:
<b> ... </>
With all arguments given, including xpath, calls the block with only those child elements that meet the first two criteria, and also match the given xpath:
a.each_element_with_text('b', 2, '//c') {|e| p e }
Output:
<c> ... </>
897 898 899 900 901 902 903 904 905 |
# File 'lib/rexml/element.rb', line 897 def each_element_with_text( text=nil, max=0, name=nil, &block ) # :yields: Element each_with_something( proc {|child| if text.nil? child.has_text? else child.text == text end }, max, name, &block ) end |