Method: CoreLibrary::XmlHelper.from_element_to_array

Defined in:
lib/apimatic-core/utilities/xml_helper.rb

.from_element_to_array(parent, item_name, clazz, wrapping_element_name: nil, datetime_format: nil) ⇒ Object

Converts element to an array.

Parameters:

  • parent (String)

    Parent XML.

  • item_name (String)

    Element name.

  • clazz (Class)

    Element class.

  • wrapping_element_name (String) (defaults to: nil)

    Main element name.

  • datetime_format (CoreLibrary::DateTimeFormat) (defaults to: nil)

    Datetime format to use for conversion..



202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
# File 'lib/apimatic-core/utilities/xml_helper.rb', line 202

def from_element_to_array(parent, item_name, clazz,
                          wrapping_element_name: nil,
                          datetime_format: nil)
  elements = if wrapping_element_name.nil?
               parent.xpath(item_name)
             elsif parent.at_xpath(wrapping_element_name).nil?
               nil
             else
               parent.at_xpath(wrapping_element_name).xpath(item_name)
             end

  return nil if elements.nil?

  if clazz.respond_to? :from_element
    elements.map { |element| clazz.from_element element }
  else
    elements.map do |element|
      convert(element.text, clazz, datetime_format)
    end
  end
end