Вот как я бы сделал то, о чем вы спрашиваете:
require 'ap'
require 'nokogiri'
xml = <<XML
<ArrayOfAddress>
<Address>
<AddressId>297424fe-cfff-4ee1-8faa-162971d2645f</AddressId>
<FirstName>George</FirstName>
<LastName>Washington</LastName>
<Address1>123 Main St</Address1>
<Address2>Apt #611</Address2>
<City>New York</City>
<State>NY</State>
<PostalCode>10110</PostalCode>
<CountryCode>US</CountryCode>
<EmailAddress>test@test.com</EmailAddress>
<PhoneNumber>5555551234</PhoneNumber>
<AddressType>CustomerAddress</AddressType>
</Address>
</ArrayOfAddress>
XML
doc = Nokogiri::XML(xml)
node_values = doc.search('//Address/*').map do |n|
n.text
end
ap node_values
Какие выходы:
[
[ 0] "297424fe-cfff-4ee1-8faa-162971d2645f",
[ 1] "George",
[ 2] "Washington",
[ 3] "123 Main St",
[ 4] "Apt #611",
[ 5] "New York",
[ 6] "NY",
[ 7] "10110",
[ 8] "US",
[ 9] "test@test.com",
[10] "5555551234",
[11] "CustomerAddress"
]
Если у вас есть несколько Address
узлов, вам нужно немного подправить код, основываясь на том, как вы хотите обрабатывать вещи, но это не сложно.