Ruby 当我尝试访问Nokogiri对象的[:href]属性时,它返回nil-当它';不是

Ruby 当我尝试访问Nokogiri对象的[:href]属性时,它返回nil-当它';不是,ruby,nokogiri,Ruby,Nokogiri,这是我正在处理的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="htt

这是我正在处理的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.text
它返回:

5月12日-Wordpress设计师-


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

如果您发布的对象确实是
my\u数组中的第一个元素,那么
my\u数组。首先
将返回
p
元素,而不是
a
。看起来您想要的
a
元素是该对象的第二个子元素,因此要访问它,您实际上需要:

my_array.first.children[1][:href]
您也可以直接使用CSS或Xpath表达式访问它


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

我们无法调试nokogiri元素,请发布原始XML。不管怎样,你似乎得到了p的href?很难说,因为我们不知道我的_阵列存储了什么。太好了……这几乎正是我需要的
.href
不起作用,但当我尝试
[:href]
时,它起作用了。谢谢有趣;我不知道它除了支持字符串外还支持符号。(源代码确实显示,无论你传递什么,它都会调用
到_
,这很好。)Nokogiri还有一个彩色命名的“Slop”装饰器,使属性作为方法可用,例如
link_node.href
my_array.first.children[1][:href]