Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何基于外部标记匹配获取内容?_Ruby_Arrays_Nokogiri - Fatal编程技术网

Ruby 如何基于外部标记匹配获取内容?

Ruby 如何基于外部标记匹配获取内容?,ruby,arrays,nokogiri,Ruby,Arrays,Nokogiri,我试图根据链接和名称所在组之外的标记来组织链接和名称列表。它的设置如下: <h4>Volkswagen</h4> <ul> <li><a href="http://beetle.cars.com">beetle</a></li> </ul> <h4>Chevy</h4> <ul> <li><a href="http://volt.car

我试图根据链接和名称所在组之外的标记来组织链接和名称列表。它的设置如下:

<h4>Volkswagen</h4>
<ul>
   <li><a href="http://beetle.cars.com">beetle</a></li>
</ul>

<h4>Chevy</h4>
<ul>
  <li><a href="http://volt.cars.com">Volt / Electric</a></li>
</ul>

我可以毫无问题地得到品牌清单。我只是很难将这批车型与每个品牌联系起来,因为
标签没有嵌套,所以我不知道如何将它们与以下
汽车列表联系起来。

我更喜欢直接跳到每辆汽车,然后再退出来提取汽车的品牌:

cars=Hash.new{h,k{h[k]=[]
doc.xpath('//ul/li/a')。每个都有| car|
brand=car.at('../../previous sibling::h4[1]')。text
汽车[品牌]“甲壳虫”}
#这里的其他人
],
“雪佛兰”=>[
{:link=>”http://volt.cars.com“,:name=>Volt/Electric”}
#这里的其他人
]
}
我发现这项技术很好而且简单,只有一个循环。但不是每个人都喜欢这种风格

Volkswagen
   Beetle Link  Beetle
   Jetta Link   Jetta

Chevy
   Volt Link  Volt / Electric
   S10 Link  S10