Class REXML::Element
In: lib/xmpp4r/rexmladdons.rb
Parent: Object

this class adds a few helper methods to REXML::Element

Methods

Public Instance methods

Deletes one or more children elements, not just one like REXML::Element#delete_element

[Source]

    # File lib/xmpp4r/rexmladdons.rb, line 76
76:     def delete_elements(element)
77:       while(delete_element(element)) do end
78:     end

Returns first element of name e

[Source]

    # File lib/xmpp4r/rexmladdons.rb, line 30
30:     def first_element(e)
31:       each_element(e) { |el| return el }
32:       return nil
33:     end

Returns text of first element of name e

[Source]

    # File lib/xmpp4r/rexmladdons.rb, line 37
37:     def first_element_text(e)
38:       el = first_element(e)
39:       if el
40:         return el.text
41:       else
42:         return nil
43:       end
44:     end

import this element’s children and attributes

[Source]

    # File lib/xmpp4r/rexmladdons.rb, line 57
57:     def import(xmlelement)
58:       if @name and @name != xmlelement.name
59:         raise "Trying to import an #{xmlelement.name} to a #{@name} !"
60:       end
61:       add_attributes(xmlelement.attributes.clone)
62:       @context = xmlelement.context
63:       xmlelement.each do |e|
64:         if e.kind_of? REXML::Element
65:           typed_add(e.deep_clone)
66:         else # text element, probably.
67:           add(e.clone)
68:         end
69:       end
70:       self
71:     end

Replaces or add a child element of name e with text t.

[Source]

    # File lib/xmpp4r/rexmladdons.rb, line 16
16:     def replace_element_text(e, t)
17:       el = first_element(e)
18:       if el.nil?
19:         el = REXML::Element::new(e)
20:         add_element(el)
21:       end
22:       if t
23:         el.text = t
24:       end
25:       self
26:     end

This method does exactly the same thing as add(), but it can be overriden by subclasses to provide on-the-fly object creations. For example, if you import a REXML::Element of name ‘plop’, and you have a Plop class that subclasses REXML::Element, with typed_add you can get your REXML::Element to be "magically" converted to Plop.

[Source]

    # File lib/xmpp4r/rexmladdons.rb, line 51
51:     def typed_add(e)
52:       add(e)
53:     end

[Validate]