html - write - اكواد bootstrap



كيف يمكنني تحليل جدول هتمل مع نوكوجيري؟ (1)

لقد قمت بتثبيت روبي وميكانيز. يبدو لي أنه من الممكن في نوكوجيري أن تفعل ما أريد القيام به ولكن أنا لا أعرف كيف نفعل ذلك.

ماذا عن هذا table ؟ انها مجرد جزء من هتمل لموقع المنتدى فوليتين. حاولت الحفاظ على بنية هتمل ولكن حذف بعض سمات النص والعلامة. أريد الحصول على بعض التفاصيل لكل موضوع مثل: العنوان، المؤلف، التاريخ، الوقت، الردود، والآراء.

يرجى ملاحظة أن هناك بعض الجداول في مستند هتمل؟ أنا بعد جدول واحد مع tbody ، <tbody id="threadbits_forum_251"> . الاسم سيكون دائما نفسه (آمل). هل يمكنني استخدام tbody name في الشفرة؟

<table >
  <tbody>
    <tr>  <!-- table header --> </tr>
  </tbody>
  <!-- show threads -->
  <tbody id="threadbits_forum_251">
    <tr>
      <td></td>
      <td></td>
      <td>
        <div>
          <a href="showthread.php?t=230708" >Vb4 Gold Released</a>
        </div>
        <div>
          <span><a>Paul M</a></span>
        </div>
      </td>
      <td>
          06 Jan 2010 <span class="time">23:35</span><br />
          by <a href="member.php?find=lastposter&amp;t=230708">shane943</a> 
        </div>
      </td>
      <td><a href="#">24</a></td>
      <td>1,320</td>
    </tr>

  </tbody>
</table>

#!/usr/bin/ruby1.8

require 'nokogiri'
require 'pp'

html = <<-EOS
  (The HTML from the question goes here)
EOS

doc = Nokogiri::HTML(html)
rows = doc.xpath('//table/tbody[@id="threadbits_forum_251"]/tr')
details = rows.collect do |row|
  detail = {}
  [
    [:title, 'td[3]/div[1]/a/text()'],
    [:name, 'td[3]/div[2]/span/a/text()'],
    [:date, 'td[4]/text()'],
    [:time, 'td[4]/span/text()'],
    [:number, 'td[5]/a/text()'],
    [:views, 'td[6]/text()'],
  ].each do |name, xpath|
    detail[name] = row.at_xpath(xpath).to_s.strip
  end
  detail
end
pp details

# => [{:time=>"23:35",
# =>   :title=>"Vb4 Gold Released",
# =>   :number=>"24",
# =>   :date=>"06 Jan 2010",
# =>   :views=>"1,320",
# =>   :name=>"Paul M"}]




html-table