1

UPSAPIを使用して場所を検証しています。UPSからXML応答を受け取り、必要な情報を解析しようとします。<AddressLine>UPSは、住所に応じて、住所ごと に1つから3つの要素を送り返すことができます。

アドレスに2つ以上ある場合はAddressLines、最初の2つを引き出す必要があります。アドレスにが1つしかない場合は、AddressLineその1行をプルする必要があります。

アドレスとアドレス2を引き出すにはどうすればよいですか?

<AddressKeyFormat>
  <AddressLine>655 MANSELL RD</AddressLine>
  <AddressLine>Apartment #2</AddressLine>
</AddressKeyFormat>

コード :

xml.xpath('//AddressKeyFormat').each do |node|
  #pull out address, and address2
end
4

2 に答える 2

4

xmlこれが Nokogiri XML ドキュメント (例: ) であると仮定するとxml = Nokogiri::XML(xmlString)、XPath 検索を行うことができ//AddressLine、結果はそれらすべてのノードになります。

xml.xpath('//AddressLine').map(&:text) # => ["655 MANSELL RD", "Apartment #2"] 
于 2012-11-28T17:12:02.153 に答える
1

これにより、最大 2 つのアドレス行が得られます。

xml.xpath('//AddressKeyFormat/AddressLine').map(&:text)[0,2]
于 2012-11-28T18:36:08.107 に答える