0
これは解析しようとしているHTMLです。私は各個人の内面テキストを取得したい。XPath/C#は返されません。
<tbody>
<tr class="past">
<!--<th><span class="place">Lugar</span></th>-->
<td class="date">14/02/2012</td>
<td class="hour">16:25</td>
<td class="status">Entregue</td>
</tr>
<tr class="past">
<!--<th><span class="place">Lugar</span></th>-->
<td class="date">13/02/2012</td>
<td class="hour">16:59</td>
<td class="status">Destinatário ausente ou fechado</td>
</tr>
<tr class="past">
<!--<th><span class="place">Lugar</span></th>-->
<td class="date">11/02/2012</td>
<td class="hour">14:09</td>
<td class="status">Envio recolhido na origem</td>
</tr>
<tr class="past">
<!--<th><span class="place">Lugar</span></th>-->
<td class="date">-</td>
<td class="hour">-</td>
<td class="status">Pendente de entrega à MRW</td>
</tr>
</tbody>
私は、このテーブルの上にthroughtすべてのTDを実行するためのコードのこの部分を使用しています:
foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//tbody/tr/td"))
{
Console.WriteLine("TD: " + link.InnerText);
}
このforeachのは一度だけ出力し、それが全体のテーブルです。私はどこでもGoogleで検索しており、XPath式は正しいはずです。あなたは問題が何であるか把握できますか?
これらのHtmlNodeクラスとDocumentNodeクラスはどこで見つかりましたか?私はMSDNでそれらを見つけることができません。 XmlNodeを使ってみませんか? – JotaBe
これはHtmlAgilityPackのコードplexから来たもので、以前はHtmlの解析に使用していましたが、これは最高のものと考えられています:これはちょうど今度のことです。何が間違っているのか分かりません。私はXmlNodeで試してみます。 –
XPathが正しいです。 HtmlAgilityPackのドキュメントをチェックし、SelectNodesが何を正確に行うかを確認する必要があります。ところで、.NETライブラリを含むあらゆるXMLライブラリは、不正な形式のドキュメントには耐性がありません。これは何らかの問題を引き起こします。ドキュメントによると、HtmlAgilityPackは不正な形式のドキュメントには寛容です。だから、あなたのHTMLドキュメントの起源に応じて、HtmlAgilityPackを使うべきです。 – JotaBe