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']");
我要做的是尝试通过选择所有表来获得第三个表,跳过前两个表,然后获取下一个表(第三个)。如果你得到了一个元素,就用它做你想做的事,否则什么都不做。
var thirdTable = res.Elements("table").Skip(2).FirstOrDefault();
if (thirdTable != null)
{
// do stuff
}
如果在使用Elements()
方法时遇到问题,可以使用具有适当xpath的SelectNodes()
进行替换。
var thirdTable = res.SelectNodes("table").Skip(2).FirstOrDefault();