感谢您的阅读。超级沮丧(也许错过了一些基本的东西,我对Nokogiri从来都不是很好)
简而言之 - 我有一个消息来源:
<div class="schedule-page">
<h3>Sunday, September 1, 2013</h3>
<table class="views-table cols-1 schedule-table">
<div class="game">Game 1</div>
<div class="game">Game 2</div>
</table>
<h3>Sunday, September 7, 2013</h3>
<table class="views-table cols-1 schedule-table">
<div class="game">Game 1</div>
<div class="game">Game 2</div>
<div class="game">Game 3</div>
</table>
<!--and so forth.... -->
</div>
我能够遍历源代码,获取每天和 X 数量的游戏,并为每天创建容器和每个游戏的字段。
<% @schedule_array.each do |a_game| %> #
<div class="game-info">
<div class="date"><%= @the_date %></div>
<div class="single-game"> # this pulls info for each game, works fine.
<div class="game-home"><%= a_game.css('.field-home-team').text %></div>
<div class="game-score"><%= a_game.css('.field-score').text %></div>
<div class="game-away"><%= a_game.css('.field-away-team').text %></div>
<div class="game-time"><%= a_game.css('.field-game-date-start-time').text %</div>
</div>
</div>
<%end%>
但我真的不知道如何从源中检索原始日期 (h3) 并以这样的方式解析它,以便我可以如上所示使用它。
我已经尝试了移动节点下显示的示例的十几种变体,如下所示:
http://nokogiri.org/tutorials/modifying_an_html_xml_document.html
但没有任何效果。谁能告诉我处理这个问题的正确方法?我的方法很胡言乱语,我不确定提出来是否有帮助。
我认为@schedule_array来自类似@schedule_array = Nokogiri::HTML( html_contents).css('.schedule-table')
的东西。
在这种情况下,您需要遍历回父级并返回到其以前的同级并获取值:
game_date = a_game.parent.previous_element.text
因此,在您的特定情况下,该行可以是:
<div class="date"><%= a_game.parent.previous_element.text %></div>