2010-03-18 15 views
5

मुझे इच्छित प्रारूप में डेटा आउटपुट करने के लिए नीचे दिए गए कोड को प्राप्त करने का प्रयास करने में कुछ समस्याएं आ रही हैं। क्या मैं के बाद कर रहा हूँ निम्नलिखित है:रूबी नोकोगिरी सीएसएस एचटीएमएल पार्सिंग

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

जहां $ 7 CCC2 के अंतर्गत आता है और दूसरों CCC1 को,

CCC1- $ 5.00
CCC1- $ 10.00 +०१२३८००७३१६: लेकिन मैं केवल इस प्रारूप में डेटा प्राप्त करने के प्रबंधन कर सकते हैं CCC1- $ 15.00
CCC1- $ 7.00
CCC2- $ 5.00
CCC2- $ 10.00
CCC2- $ 15.00
CCC2- $ 7,00

किसी भी मदद की सराहना की जाएगी।

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 

उत्तर

4

इस बारे में कैसे?

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

कुल, क्या बढ़िया काम करता है। धन्यवाद लाखों :) – user296507

+0

क्या आप 'td.BBB> span.CCC 'का अर्थ कह सकते हैं? दस्तावेज कहां है? सीएसएस सिंटैक्स में –

+0

'>' को समझाया गया है http:// http://stackoverflow.com/questions/4459821/css-selector-what-is-it – vaichidrewar

संबंधित मुद्दे