我将xml数据引入我的应用程序控制器,传递给数组,然后将存储在此数组中的数据传递给视图并进入高级图。任何人都可以帮忙,我绝大多数都做了,我只是看不出我做错了什么。
def index
@doc = Nokogiri::XML(open("http://api.worldbank.org/countries/BRA/indicators/1.0.HCount.2.5usd?per_page=10&date=1960:2014"))
@values = Array.new(9)
for i in 0 .. 8
@values[i] = @doc.xpath('//wb:value')
end
end
然后我调用我的系列中的数据:
data: [<%=@values[0]%>, <%=@values[1]%>, <%=@values[2]%>, <%=@values[3]%>, <%=@values[4]%>, <%=@values[5]%>, <%=@values[6]%>, <%=@values[7]%>, <%=@values[8]%>]
错误信息如下:
undefined method `[]' for nil:NilClass
突出显示错误的区域:
data: [<%=@values[0]%>, <%=@values[1]%>, <%=@values[2]%>, <%=@values[3]%>, <%=@values[4]%>, <%=@values[5]%>, <%=@values[6]%>, <%=@values[7]%>, <%=@values[8]%>] –
答案 0 :(得分:0)
在第6行,您忘记指出@doc.xpath('//wb:value')
,因此它应该是:
@values[i] = @doc.xpath('//wb:value')
doc
是实例变量。
对于阵列问题,您可以使用:
@doc = Nokogiri::XML(open("http://api.worldbank.org/countries/BRA/indicators/1.0.HCount.2.5usd?per_page=10&date=1960:2014"))
m = @doc.xpath("//wb:value").collect(&:text)
@values = Array.new
m.each do |m|
@values << m
end