Ruby阵列打印

时间:2011-11-18 17:13:15

标签: ruby xml arrays nokogiri

我有一组对象(nokogiri xml nodes),每个节点都有namevalue。 我希望以name=value格式打印它们,而不必迭代for循环。

如果我使用arr *“,”我只能看到下面的值

4900.00,5.00,0.00,-100.00,100.00
6085.00,5.00,1285.00,1185.00,100.00
6015.00,5.00,30.00,-70.00,100.00
5915.00,5.00,0.00,-100.00,100.00
5815.00,5.00,0.00,-100.00,100.00

这里有什么可以做的。

2 个答案:

答案 0 :(得分:1)

这样的事情应该有效:

array.each do |n|
  puts "#{n.name}=#{n.value}"
end

答案 1 :(得分:1)

假设您的Nokogiri节点具有namevalue属性(不是子元素),这是一种方式:

# Convert the array into a new array of strings
namevals = my_array.map{ |node| "#{node['name']}=#{node['value']}" }

# See it with space delimiters
puts namevals.join(' ')

可能有用的替代方案:

# Create a hash mapping unique names to values
namevals = Hash[ my_array.map{ |node| [ node['name'], node['value'] } ]