/ / Ruby + Nokogiri: ¿Cómo crear un nodo XML con attribute = value? - rubí, xml, nokogiri

Ruby + Nokogiri: ¿Cómo crear un nodo XML con atributo = valor? - ruby, xml, nokogiri

Tengo que hacer una solicitud a una API con XML:

http://production.shippingapis.com/ShippingAPITest.dll?API=CityStateLookup&XML=<CityStateLookupRequest%20USERID="xxxxxxxxxxxx"> <ZipCode ID= "0"> <Zip5>90210</Zip5> </ZipCode> </CityStateLookupRequest>

Estoy tratando de usar Nokogiri para lograr esto, pero no sé cómo agregar el USERID="xxxx.." parte. Esto es lo que tengo (incompleto):

def xml_for_initial_request
builder = Nokogiri::XML::Builder.new do |xml|
xml.CityStateLookupRequest.USERIDhowdoIsetthevalue?? {
xml.Zip {
xml.Zip5 "90210"
}
}
end
end

Respuestas

9 para la respuesta № 1

Yo haría lo siguiente:

require "nokogiri"

builder = Nokogiri::XML::Builder.new do |xml|
xml.CityStateLookupRequest("userid" => "xxxxxx" ) {
xml.zip("id" => "10"){
xml.Zip5 "90210"
}
}
end

puts builder.to_xml
# >> <?xml version="1.0"?>
# >> <CityStateLookupRequest userid="xxxxxx">
# >>   <zip id="10">
# >>     <Zip5>90210</Zip5>
# >>   </zip>
# >> </CityStateLookupRequest>