需要使用Nokogiri将节点移动到另一个节点内,然后在视图中循环访问节点的内容



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

相关内容

  • 没有找到相关文章

最新更新