2011-08-16 13 views
0

私はしばらくの間、頭を傷つけています。私の脳を選ぶ前に私を助けてください。Nokogiriを使用してHTMLテーブルからノードを削除

私は列の一部として「は、」と「アウト」を持つイベントテーブルを持つHTMLドキュメントを持っています。レコードはInイベントまたはOutイベントのいずれかです。 'In'列の値を持つ行だけを取得して、同じ属性を持つイベントモデルにテキストを保存することはできません。以下のコードは私が '0'を返すものです。

#!/usr/bin/env ruby 

require 'rubygems' 
require 'nokogiri' 


doc = Nokogiri::HTML <<-EOS 
    <table><thead><th>Reference</th><th>Event Date</th><th>Event Details</th><th>In</th><th>Out</th></thead><tbody><tr><td>BCE16</td><td>2011-08-16 11:14:52</td><td>Received from Arap Moi</td><td>30.00</td><td></td></tr><tr><td>B07K2</td><td>2011-08-16 11:10:06</td><td>Sent out to John Doe.</td><td>&nbsp;</td><td>-50.00</td></tr></tbody><tfoot></tfoot></table> 
EOS 


minus_received = doc.xpath('//td[contains(text(), "Received from")]').each do |node| 
    node.parent.remove 
end 

p minus_received.to_s 

人間の読み取り可能なマークアップ

<table> 
    <thead> 
    <th>Reference</th> 
    <th>Event Date</th> 
    <th>Event Details</th> 
    <th>In</th> 
    <th>Out</th> 
    </thead> 

    <tbody> 
    <tr> 
    <td>BCE16</td> 
    <td>2011-08-16 11:14:52</td> 
    <td>Received from Arap Moi.</td> 
    <td>30.00</td> 
    <td></td> 
    </tr> 
    <tr> 
    <td>B07K2</td> 
    <td>2011-08-16 11:10:06</td> 
    <td>Sent out to John Doe.</td> 
    <td>&nbsp;</td> 
    <td>-50.00</td> 
    </tr> 
    </tbody> 
    <tfoot></tfoot> 
</table> 

私はあなたの助けに感謝。

答えて

1

あなたは.eachの値を出力している - あなたは、各コールの終了後にドキュメントを見れば、HTMLはヘッダーのみとジョン・ドウが含まれています。

+0

ありがとうございました。あの小さなハンマーは本当に私の脳を乱してしまった。 –

関連する問題