1

这是我正在处理的 Nokogiri 对象:

#<Nokogiri::XML::Element:0x81020c70 name="p" children=[#<Nokogiri::XML::Text:0x8101f3fc " May 12 - ">, #<Nokogiri::XML::Element:0x8101f3ac name="a" attributes=[#<Nokogiri::XML::Attr:0x8101f258 name="href" value="http://auburn.craigslist.org/cpg/3011653835.html">] children=[#<Nokogiri::XML::Text:0x8101ee20 "Wordpress Designer">]>, #<Nokogiri::XML::Text:0x8101ecb8 " - ">]>

那存储在一个数组中,所以当我这样做时:

my_array.first[:href]

它返回零。

当我做

my_array.first.text

它返回:

5 月 12 日 - WordPress 设计师 -

哪个是正确的...我如何从这个特定记录中获取 href?

4

1 回答 1

3

如果您发布的对象确实是第一个元素,my_array那么my_array.first将返回一个p元素,而不是a. 看起来a你想要的元素是这个对象的第二个孩子,所以要访问它你真正想要的:

my_array.first.children[1][:href]

您也可以直接使用 CSS 或 Xpath 表达式访问它。

当然,我真的只是在猜测,因为您没有发布任何实际代码。

于 2012-05-25T16:36:54.673 回答