Bir HTML dosyam var (Newegg'den) ve HTML'leri aşağıdaki gibi organize edilmiş. Spesifikasyon tablosundaki tüm veriler ' desc ' iken her bölümün başlıkları ' ad ' içindedir. Aşağıda Newegg sayfalarından alınan iki veri örneği bulunmaktadır.
<tr>
<td class="name">Brand</td>
<td class="desc">Intel</td>
</tr>
<tr>
<td class="name">Series</td>
<td class="desc">Core i5</td>
</tr>
<tr>
<td class="name">Cores</td>
<td class="desc">4</td>
</tr>
<tr>
<td class="name">Socket</td>
<td class="desc">LGA 1156</td>
<tr>
<td class="name">Brand</td>
<td class="desc">AMD</td>
</tr>
<tr>
<td class="name">Series</td>
<td class="desc">Phenom II X4</td>
</tr>
<tr>
<td class="name">Cores</td>
<td class="desc">4</td>
</tr>
<tr>
<td class="name">Socket</td>
<td class="desc">Socket AM3</td>
</tr>
Sonunda, her bir veriyi depolamak için bir Marka, Seri, Çekirdek ve Soket tipinden oluşan bir CPU için (zaten ayarlanmış olan) bir sınıfa sahip olmak istiyorum. Bunu yapmanın tek yolu bu:
if(parsedDocument.xpath(tr/td[@class="name"])=='Brand'):
CPU.brand = parsedDocument.xpath(tr/td[@class="name"]/nextsibling?).text
Ve bunu değerlerin geri kalanı için yapmak. Nextsibling'i nasıl başarabilirim ve bunu yapmanın daha kolay bir yolu var mı?
td[@class='name']
, kırılacaktır. Ayrıntılar için bu soruya bakın.