私はこのhtmlテーブルを持っています:
<div style="width: 398px;">
<table cellpadding="4" cellspacing="0" width="100%" style="border: 2px solid #ffffff;">
<tbody>
<tr class="parrafo-ver-negro">
<th class="borde-abajo borde-derecha" style="text-align: left;">Parada Nº</th>
<th class="borde-abajo" style="text-align: left;">Destino</th>
</tr>
<tr>
<td class="borde-derecha"><a class="parrafo-ver-negro link-nro-sms">5729</a></td>
<td class="parrafo_ver-gris letra9">103 NEGRO > Villa Gdor. Galvez<br>103 ROJO > Villa Gdor. Gálvez<br></td>
</tr>
<tr>
<td class="borde-derecha"><a class="parrafo-ver-negro link-nro-sms">5292</a></td>
<td class="parrafo_ver-gris letra9">103 NEGRO > Granadero Baigorria<br>103 ROJO > Mini Terminal Barrio Rucci<br></td>
</tr>
</tbody>
</table>
</div>
私のコードはこれです:
public static List<Parada> parsear(string html)
{
int cual;
int _parada;
string _destino;
List<Parada> lp = new List<Parada>();
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
foreach (HtmlNode tabla in doc.DocumentNode.SelectNodes("//table"))
{
foreach (HtmlNode fila in tabla.SelectNodes("//tr"))
{
cual = 1; _parada = 0; _destino = "";
foreach (HtmlNode celda in fila.SelectNodes("//td"))
{
if (cual == 1)
{
_parada = Int32.Parse(celda.InnerText);
cual = 2;
}
else if (cual == 2)
{
_destino = celda.InnerText;
cual = 1;
lp.Add(new Parada(_parada, _destino));
}
}
}
}
return lp;
}
最終的には List of Parada の 2 つの要素 (最初の TR はヘッダーなので無視する必要があります) になるはずですが、代わりに 2 つではなく 6 つになっています。コードの何が問題になっていますか? 私は多くのことを試しましたが、同じ結果でした。
ありがとう。