2010-03-18 4 views
5

J'ai quelques problèmes en essayant d'obtenir le code ci-dessous pour sortir les données dans le format que je veux. Ce que je suis après est la suivante:RUBY Nokogiri HTML HTML d'analyse

CCC1- 5,00 $
CCC1- 10,00 $
CCC1- 15.00 $
CCC2- 7,00

$

où 7 $ appartient à Ccc2 et les autres à CCC1, mais je ne peux gérer pour obtenir les données dans ce format:

CCC1- $ 5.00
CCC1- 10,00 $
CCC1- 15.00 $
CCC1- 7,00 $
CCC2- 5,00
$ 10.00 CCC2-
$ 15.00 $ CCC2-
CCC2- 7,00 $

Toute aide serait appréciée.

require 'rubygems' 
require 'nokogiri' 
require 'open-uri' 

doc = Nokogiri::HTML.parse(<<-eohtml) 
<div class="AAA"> 
    <table cellspacing="0" cellpadding="0" border="0" summary="sum"> 
     <tbody> 
      <tr> 
       <td class="BBB"> 
        <span class="CCC">CCC1</span> 
       </td> 
       <td class="DDD"> 
        <table cellspacing="0" cellpadding="0" border="0"> 
         <tbody> 
          <tr><td class="FFF">$5.00</td></tr> 
          <tr><td class="FFF">$10.00</td></tr> 
          <tr><td class="FFF">$15.00</td></tr> 
         </tbody> 
        </table> 
       </td> 
      </tr> 
     </tbody> 
    </table> 
    <table cellspacing="0" cellpadding="0" border="0" summary="sum"> 
     <tbody> 
      <tr> 
       <td class="BBB"> 
        <span class="CCC">CCC2</span> 
       </td> 
       <td class="DDD"> 
        <table cellspacing="0" cellpadding="0" border="0"> 
         <tbody> 
          <tr><td class="FFF">$7.00</td></tr> 
         </tbody> 
        </table> 
       </td> 
      </tr> 
     </tbody> 
    </table> 
</div> 
eohtml 

doc.css('td.BBB > span.CCC').each do |something| 
    doc.css('tr > td.EEE, tr > td.FFF').each do |something_more| 
     puts something.content + '-'+ something_more.content 
    end 
end 

Répondre

4

Que pensez-vous de cela?

doc.css('td.BBB > span.CCC').each do |something| 
    something.parent.parent.css('tr > td.EEE, tr > td.FFF').each do |something_more| 
     puts something.content + '-'+ something_more.content 
    end 
end 
+0

kool, ce qui fonctionne très bien. merci un million :) – user296507

+0

Pourriez-vous dire le sens de '' td.BBB> span.CCC''? où est la documentation? –

+0

'>' dans la syntaxe css est expliqué @ http://stackoverflow.com/questions/4459821/css-selector-what-is-it – vaichidrewar

Questions connexes