使用HTML敏捷包的C#Null异常
本文关键字:C#Null 异常 HTML 使用 | 更新日期: 2023-09-27 18:28:04
我有一个函数,试图从这个网页中获取一些文本:
http://www.nla.gd/winning-numbers/
public static string get_webpage(string url)
{
HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load(url);
string date = doc.DocumentNode.InnerText;
string lotto_winning_numbers = doc.DocumentNode.SelectNodes("//[@id='"main'"]/div/strong/div/div[2]/div[1]/div[1]").ToString();
return lotto_winning_numbers;
}
当我运行函数时,我得到一个NULL异常。
我的xpath正确吗?
在XPath中不能单独使用筛选器(如[@id='main']
)。您需要将筛选器应用于像div
或*
这样的节点集合。
请注意,您还希望组合结果集合中的值元素,而不是将集合本身转换为字符串。
类似于:
// Note "*" in front of filter
var lotto_winning_numbers = doc.DocumentNode.SelectNodes(
"//*[@id='"main'"]/div/strong/div/div[2]/div[1]/div[1]");
// lotto_winning_numbers is collection of nodes here.
return lotto_winning_numbers == null ? String.Empty :
String.Join(", ", lotto_winning_numbers);
查看MSDN文章XPath示例或许多其他教程了解更多信息。