我處理這樣一個xml:如何遍歷一個哈希在Ruby中
<fare_master_pricer_reply>
<flight_index>
<group_of_flights>
<flight_details>
</flight_details>
.
.
<flight_details>
</flight_details>
</group_of_flights>
<group_of_flights>
<flight_details>
</flight_details>
.
.
<flight_details>
</flight_details>
</group_of_flights>
.
.
<group_of_flights>
<flight_details>
</flight_details>
.
.
<flight_details>
</flight_details>
</group_of_flights>
</flight_index>
</fare_master_pricer_reply>
這是給我的一個哈希對象。我需要遍歷散列,到目前爲止,我編寫這樣的:
@flights = response.to_hash[:fare_master_pricer_calendar_reply][:flight_index]
while (@flight_groups = @flights[:group_of_flights]) != nil
while (@flight = @flight_groups[:flight_details])
@time_data = @flight[:flight_information][:product_date_time]
@html = "<tr>"
@html += "<td>" + @time_data[:date_of_departure] + "</td>"
@html += "<td>" + @time_data[:date_of_arrival] + "</td>"
@html += "<td>" + @flight[:location][:location_id] + "</td>"
@html += "</tr>"
end
@html = "<tr><td>**</td><td>**</td><td>**</td><td>**</td><td>**</td><td>**</td><td>**</td></td>"
end
,但我得到
在這一行類型錯誤(符號作爲數組索引):
:
while (@flight = @flight_groups[:flight_details])
爲什麼我的散列成爲一個數組?這是迭代我的原始散列的正確方法嗎?
謝謝!!!
而我該如何迭代該數組?因爲我需要知道「關鍵」值才能做我想做的事(即構建一個代表我的xml數據的表) – content01
@ content01:可能是'''''''''''''' ...},這會給你'g'中的''數據,然後是另一個'g.each'來獲取包含的<等。 –
事情是,在每個< group_of_flights>存在比更多的標籤。如何獲得外部循環內的? –
content01