0
这是我试图解析的HTML。我想要获取每个单独的td内部文本。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 2012-03-29 10:49:50
它来自Codeplex上的HtmlAgilityPack,我之前用它来解析Html,它被认为是最好的:\它只是这次,我无法弄清楚什么是错的。我会尝试使用XmlNode。 – 2012-03-29 10:52:02
您的XPath是正确的。你应该检查HtmlAgilityPack文档,看看SelectNodes到底是什么。顺便说一下,任何XML库(包括.NET库)都不能容忍格式错误的文档。这可能会造成一些麻烦。根据文档HtmlAgilityPack是容忍格式不正确的文件。所以,根据HTML文档的来源,您应该坚持使用HtmlAgilityPack。 – JotaBe 2012-03-29 10:58:33