我想要做的是讀取此XML中所有節點的值,並將它們放入數組中。這應該是簡單的,但由於某種原因,這使我瘋狂。Ruby - Nokogiri - 需要將node.value放入數組
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>[email protected]</EmailAddress>
<PhoneNumber>5555551234</PhoneNumber>
<AddressType>CustomerAddress</AddressType>
</Address>
</ArrayOfAddress>
代碼
class MassageRepsone
def parse_resp
@@get_address.url_builder #URL passed through HTTPClient - @@resp is the xml above
doc = Nokogiri::XML::Reader(@@resp)
@@values = doc.each do |node|
node.value
end
end
@@get_address.parse_resp
obj = [@@values]
Array(obj)
p obj
end
從上面的代碼片段返回如下:
297424fe-cfff-4ee1-8faa-162971d2645f
George
Washington
123 Main St
Apt #622
New York
NY
10110
US
test.test.com
5555551234
CustomerAddress
我試圖把@@值的字符串和應用格格但只是將換行符打印爲零,並將值放在引號內。不知道下一步是什麼,或者如果我需要與Nokogiri以不同的方式處理。
請修正您的代碼的格式。 – cam 2011-01-12 20:10:58
問題的一部分是你不瞭解Nokogiri,但是你也不明白Ruby會用`each'來做什麼,或者理解如何使用`each`來創建一個集合。另外,知道你爲什麼要使用`each`和`map`會有助於你的代碼。此外,您需要了解何時使用`@@`與`@`創建局部變量。 – 2011-01-12 21:42:36
是的,我在學習。 @@ vs @與局部變量的原因是因爲我創建了在各種文件中的類之間使用的類變量和實例變量。我正在提煉,並感謝你的幫助。 – r3nrut 2011-01-12 21:45:48