【发布时间】:2015-05-07 14:50:29
【问题描述】:
一个简单的问题:
<table>
<tr>
<th>foo</th>
<td><p>bar</p></td>
</tr>
</table>
details = doc.css('table > tr > th')
details2 = doc.css('table > tr > td > p')
details = details.map { |n| { name: n.text }}
details2 = details2.map { |n| { value: n.text }}
如何将这些 Nokogiri 对象合并到一个 map 语句中?
输出:
{:name=>"abc"}
{:name=>"ghj"}
{:name=>"lmn"}
{:value=>"123"}
{:value=>"456"}
{:value=>"789"}
我需要这样的东西:
{:name=>"abc", :value=>"123"}
我尝试过这样的事情:
details = details.map { |n| { name: n.text, value: n.css('table > tr > td > p').map { |x| {value: x} }}}
details = details.map { |n| {name: n.text, value: n.css('table > tr > td').attr('p').to_s} }
【问题讨论】:
-
欢迎使用 Stack Overflow。您需要提供一个最小的 HTML 示例来显示您正在谈论的内容。要求我们拼凑一些东西只会减慢我们的速度,并增加您获得对您的用例不起作用的东西的机会。