0

Nokogiriを使用して、以下のコードを使用してHTMLファイルからデータを抽出しようとしています。

@doc = Nokogiri::HTML("<table >
<tr BGCOLOR=\"#eeeeee\">
<td>SPILLED</td>
</tr>
<tr BGCOLOR=\"#eeeeee\">
<td >RUSTING</td>
</tr>
</table>")
@doc.xpath('//tr[@bgcolor="#eeeeee"]').each do |record|
    print record
    record.xpath("//td").each do |cell|
       print cell
    end
end

最初のブロックは期待どおりに機能しているようです。毎回record、行の1つだけが含まれています。一方、2番目のブロックは、両方の<td>行の要素にアクセスしています。これは、record変数が内側のブロックに入る前に1行だけのデータを持っていることを示していることを考えると、私には不思議です。

「レコード」が内側のブロックにある場合、両方の行のデータはどのように保持されますか?

4

1 に答える 1

0

それを理解しました-「td」の前の「//」により、検索はツリーの上位に戻り、レコード変数の内容の上に移動します。つまり、レコード内の要素はまだ親要素との関係を持っています。 「//」はそれを解決しました。

于 2012-09-07T18:22:34.433 に答える