如何遍历这个Ruby对象?

如何遍历这个Ruby对象?,ruby,nokogiri,Ruby,Nokogiri,我正在使用,我做到了: @output = document.xpath('//li/a') 产生这一产出的原因是: > #<GrabFeedFromJSE:0x00007fe7098bb648 @titles=NodeSet(Element(name: "a" attributes: [Attribute(name: "href" value: "/market-data/index-data/jse-index")] children: NodeSet(Text("\n\n

我正在使用,我做到了:

@output   = document.xpath('//li/a')
产生这一产出的原因是:

> #<GrabFeedFromJSE:0x00007fe7098bb648 @titles=NodeSet(Element(name: "a" attributes: [Attribute(name: "href" value: "/market-data/index-data/jse-index")] children: NodeSet(Text("\n\n                \n\n\n                JSE Index \n                \n                "), Element(name: "br"), Text("\n\n                4,614,305 Vol\n                "), Element(name: "br"), Text("\n\n                                299,175.87                \n                "), Element(name: "img" attributes: [Attribute(name: "style" value: "height:16px"), Attribute(name: "src" value: "/img/down.png")]), Text("\n\n                \n                -541.06\n                            "))), Element(name: "a" attributes: [Attribute(name: "href" value: "/market-data/index-data/all-jamaican")] children: NodeSet(Text("\n\n                \n\n\n                JSE All Jamaican Composite Index \n                \n                "), Element(name: "br"), Text("\n\n                3,911,832 Vol\n                "), Element(name: "br"), Text("\n\n                                328,363.09                \n                "), Element(name: "img" attributes: [Attribute(name: "style" value: "height:16px"), Attribute(name: "src" value: "/img/down.png")]), Text("\n\n                \n                -593.84\n                            "))), Element(name: "a" attributes: [Attribute(name: "href" value: "/market-data/index-data/jse-select")] children: NodeSet(Text("\n\n                \n\n\n                JSE Select Index \n                \n                "), Element(name: "br"), Text("\n\n                3,036,580 Vol\n                "), 

#您的输出告诉您有一个
GrabFeedFromJSE
的实例:

等等


注意:您使用的是完全不同的XML处理器,因此使用Nokogiri的文档对您毫无帮助。你需要看看Oga的文件。但是,您正在处理的对象不是Oga对象,而是
GrebFeedFromJSE
对象。您应该查找它的文档,或者如果它没有文档,请联系它的作者。

您的输出告诉您有一个
GrabFeedFromJSE
的实例:

等等


注意:您使用的是完全不同的XML处理器,因此使用Nokogiri的文档对您毫无帮助。你需要看看Oga的文件。但是,您正在处理的对象不是Oga对象,而是
GrebFeedFromJSE
对象。您应该查找其文档,如果没有文档,请联系其作者。

示例代码中没有任何内容分配给
@output
;这就是你的行为<代码>标题
的行为类似于数组,您可以使用标准方法枚举它。请尝试
标题[0]。例如,路径
。@Phlip还有更多的代码,但为了优先起见,请假定它已正确分配。我已经更新了问题以使其更准确。@Phlip我也尝试了你的建议,但没有成功:
@output[0]。路径命名错误:未定义的方法“[]”用于#
示例代码中没有任何内容分配给
@output
;这就是你的行为<代码>标题
的行为类似于数组,您可以使用标准方法枚举它。请尝试
标题[0]。例如,路径
。@Phlip还有更多的代码,但为了优先起见,请假定它已正确分配。我已经更新了问题以使其更准确。@Phlip我也尝试了你的建议,但没有成功:
@output[0]。路径命名错误:未定义的方法“[]”,用于
我是
GrabFeedFromJSE
类的作者,但该类所做的只是返回以下结果:
@output=document.xpath(“//li/a”)
从技术上讲,它是一个Oga对象。我是
GrabFeedFromJSE
类的作者,但该类所做的只是返回以下结果:
@output=document.xpath('//li/a')
从技术上讲,它是一个Oga对象。
>>  @output.titles
NoMethodError: undefined method `titles' for #<GrabFeedFromJSE:0x00007fe7098bb648>
    from /app/views/portfolio/ticker.html.erb:5:in `_app_views_portfolio_ticker_html_erb__2987784693093146087_70315110554280'
>>  @output[:titles]
NoMethodError: undefined method `[]' for #<GrabFeedFromJSE:0x00007fe7098bb648>
    from /app/views/portfolio/ticker.html.erb:5:in `_app_views_portfolio_ticker_html_erb__2987784693093146087_70315110554280'
>>  @output.at_xpath('a')
NoMethodError: undefined method `at_xpath' for #<GrabFeedFromJSE:0x00007fe7098bb648>
    from /app/views/portfolio/ticker.html.erb:5:in `_app_views_portfolio_ticker_html_erb__2987784693093146087_70315110554280'
#<GrabFeedFromJSE:0x00007fe7098bb648 @titles=NodeSet(Element(name: "a" attributes: [Attribute(name: "href" value: "/market-data/index-data/jse-index")] children: NodeSet(Text("\n\n                \n\n\n                JSE Index \n                \n                "), Element(name: "br"), Text("\n\n                4,614,305 Vol\n                "), Element(name: "br"), Text("\n\n                                299,175.87                \n                "), Element(name: "img" attributes: [Attribute(name: "style" value: "height:16px"), Attribute(name: "src" value: "/img/down.png")]), Text("\n\n                \n                -541.06\n                            "))), Element(name: "a" attributes: [Attribute(name: "href" value: "/market-data/index-data/all-jamaican")] children: NodeSet(Text("\n\n                \n\n\n                JSE All Jamaican Composite Index \n                \n                "), Element(name: "br"), Text("\n\n                3,911,832 Vol\n                "), Element(name: "br"), Text("\n\n                                328,363.09                \n                "), Element(name: "img" attributes: [Attribute(name: "style" value: "height:16px"), Attribute(name: "src" value: "/img/down.png")]), Text("\n\n                \n                -593.84\n                            "))), Element(name: "a" attributes: [Attribute(name: "href" value: "/market-data/index-data/jse-select")] children: NodeSet(Text("\n\n                \n\n\n                JSE Select Index \n                \n                "), Element(name: "br"), Text("\n\n                3,036,580 Vol\n                "), 
  ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

>>  @output.titles
NoMethodError: undefined method `titles' for #<GrabFeedFromJSE:0x00007fe7098bb648>
                                               ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
  from /app/views/portfolio/ticker.html.erb:5:in `_app_views_portfolio_ticker_html_erb__2987784693093146087_70315110554280'
>>  @output[:titles]
NoMethodError: undefined method `[]' for #<GrabFeedFromJSE:0x00007fe7098bb648>
                                           ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
  from /app/views/portfolio/ticker.html.erb:5:in `_app_views_portfolio_ticker_html_erb__2987784693093146087_70315110554280'
>>  @output.at_xpath('a')
NoMethodError: undefined method `at_xpath' for #<GrabFeedFromJSE:0x00007fe7098bb648>
                                                 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
  from /app/views/portfolio/ticker.html.erb:5:in `_app_views_portfolio_ticker_html_erb__2987784693093146087_70315110554280'
>> @output[0].path
NoMethodError: undefined method '[]' for #<GrabFeedFromJSE:0x00007fe7098bb648>
                                           ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
@output.methods          # to get a list of methods
m = @output.method(:foo) # to get a specific method
m.owner                  # to find out which module the method belongs to