1

谢谢阅读。超级沮丧(也许错过了一些基本的东西,我对 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

但没有任何工作。谁能告诉我处理这个问题的正确方法?我的方法是胡言乱语,我不确定它是否有帮助。

4

1 回答 1

1

我假设 @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>
于 2013-09-13T06:18:12.770 回答