Tôi đang gặp một số sự cố khi cố gắng lấy mã bên dưới để xuất dữ liệu theo định dạng mà tôi muốn. Những gì tôi đang theo đuổi là như sau:RUBY Nokogiri HTML HTML Phân tích cú pháp
CCC1- $ 5.00
CCC1- $ 10.00
CCC1- $ 15.00
CCC2- $ 7,00
nơi $ 7 thuộc về CCC2 và những người khác để CCC1, nhưng tôi chỉ có thể quản lý để có được các dữ liệu ở định dạng này:
CCC1- $ 5.00
10.00CCC1- $ CCC1- $ 15.00
CCC1- $ 7.00
CCC2- $ 5.00
CCC2- $ 10.00
CCC2- $ 15.00
CCC2- $ 7,00
Bất kỳ trợ giúp sẽ được đánh giá cao.
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
kool, công trình tuyệt vời. cảm ơn một triệu :) – user296507
Bạn có thể nói ý nghĩa của ''td.BBB> span.CCC''? tài liệu ở đâu? –
'>' trong cú pháp css được giải thích @ http://stackoverflow.com/questions/4459821/css-selector-what-is-it – vaichidrewar