0
我正在運行一個else循環遍歷ruby中的XML文件,並將值分配給一個散列值。 XML文件中有3個項目,但由於某種原因,它只能通過第一個項目進行迭代,爲什麼?Else Loop只運行一次
require "nokogiri"
f= File.open("untitled.xml")
doc = Nokogiri::XML(f)
f.close
doc.xpath('//item').each do |node|
children = node.children
item = {
"name" => node['name'],
"buyItNowPrice"=> children.css('buytItNowPrice').inner_text,
"description" => children.css('description').inner_text,
"startingBidPrice" => children.css('startingBidPrice').inner_text,
"closing_time" => children.css('closing_time').inner_text,
"closing_date" => children.css('closing_date').inner_text
}
puts item
end
XML:
<item name = "Test Thing">
<description>Something Coolest.</description>
<buytItNowPrice>154.99</buytItNowPrice>
<startingBidPrice>9999.99</startingBidPrice>
<closing_date>2014-12-25</closing_date>
<closing_time>12:32:PM</closing_time>
</item>
<item name = "Lazer">
<description>Something Cool.</description>
<buytItNowPrice>149.99</buytItNowPrice>
<startingBidPrice>9.99</startingBidPrice>
<closing_date>2014-12-25</closing_date>
<closing_time>12:32:PM</closing_time>
</item>
<item name = "Pokemon">
<description>Something even cooler.</description>
<buytItNowPrice>33.99</buytItNowPrice>
<startingBidPrice>9.99</startingBidPrice>
<closing_date>2014-12-25</closing_date>
<closing_time>12:32:PM</closing_time>
</item>
輸出僅是第一項打印。
只是在黑暗中刺,但也許是因爲你的XML無效?嘗試將你的'- '包裝在'
'根節點中,然後遍歷它。 –
kasoban
2014-12-08 08:55:00
就是這樣,謝謝! – user2816254 2014-12-08 09:02:57
我從那個評論中創建了一個答案,你應該能夠在幾分鐘內將其標記爲已接受。很高興我能幫上忙! – kasoban 2014-12-08 09:08:55