我正在尝试抓取可能包含许多行的报告。我需要在表中计算两个不同方面。首先,显示带有特定标题的href的计数。第二,TD [9]为空的出现次数。我相信我已经弄清楚了第一部分,但是似乎无法获得第二点。
此报告上的特定表的ID为tbl1。表格行大致采用以下格式:
<tr>
<td>
<table>
<tr>
<td><a href="URL1" title="Title1" ></a></td>
<td><a href="URL2" title="Title2" ></a></td>
</tr>
</table>
</td>
<td>text</td>
<td>text</td>
<td>text</td>
<td><a href="URL3" title="Title3">text</a></td>
<td>text</td>
<td>text</td>
<td>text</td>
<td>text</td>
<td>text</td>
<td>text</td>
<td>text</td>
<td>text</td>
<td>text</td>
<td>text</td>
</tr>
在C#中,我使用HtmlAgilityPack提取标题Title3的计数。这似乎工作正常。
foreach (HtmlNode results in htmlReport.DocumentNode.SelectNodes("//table[@id='tbl1']"))
{
var countFirst = results.SelectNodes("//tr//td//a[not(@class) and @title='Title3']").Count;
}
在同一张表中,我想计算每行TD [9]为空的出现次数。我已经尝试了以下操作,但是这导致了未处理的异常:表达式必须计算为节点集。
var countSecond = results.SelectNodes("//tr//td[9] == null").Count;
我确定这里缺少一些简单的东西。有任何线索吗?