首页 > 解决方案 > 如何找到为空的 TD 计数?

问题描述

我正在尝试抓取可能有很多行的报告。我需要计算表中的两个不同方面。首先,具有特定标题的 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;

我确定我在这里遗漏了一些简单的东西。有什么线索吗?

标签: c#html-agility-pack

解决方案


推荐阅读