HtmlAgilityPack检查表的数量;标题”;

本文关键字:标题 检查表 HtmlAgilityPack | 更新日期: 2024-09-20 00:40:35

我正试图用HtmlAgilityPack从包含2-6个表的div中提取信息。

只要有相同数量的表,我就可以通过使用毫无问题地获得信息

var thirdTable = res.SelectSingleNode("table[3]");

每个表都包含td,第一个表包含我要检查的名称。目前由完成

<table border="0" cellspacing="1" cellpadding="4" width="100%">
    <tbody>
        <tr bgcolor="#505050">
            <td colspan="2" class="white">
                <b>Character Deaths</b>
            </td>
        </tr>
    </tbody>
</table>
var charTest = thirdTable.ChildNodes[0].InnerText.StartsWith(checkInfo);

但由于表的数量不时不同,我无法在没有NullReferenceException的情况下提取信息。

如何检查表的数量,然后判断存在哪些表?

编辑:

       var URLCharacter = "http://www..." + tbSearch.Text;
       HtmlAgilityPack.HtmlWeb doc = new HtmlAgilityPack.HtmlWeb();
       htmldocObject = doc.Load(URLCharacter);
       //Find the right contentdiv
       var res = htmldocObject.DocumentNode.SelectSingleNode("//div[@class='BoxContent']");

HtmlAgilityPack检查表的数量;标题”;

我要做的是尝试通过选择所有表来获得第三个表,跳过前两个表,然后获取下一个表(第三个)。如果你得到了一个元素,就用它做你想做的事,否则什么都不做。

var thirdTable = res.Elements("table").Skip(2).FirstOrDefault();
if (thirdTable != null)
{
    // do stuff
}

如果在使用Elements()方法时遇到问题,可以使用具有适当xpath的SelectNodes()进行替换。

var thirdTable = res.SelectNodes("table").Skip(2).FirstOrDefault();