在 C# 中使用 HtmlAgilityPack 为跨平台 Xamarin 应用程序解析 html

Parsing html using HtmlAgilityPack in C# for a cross-platform Xamarin app

我正在尝试解析在线日历,以便在我的跨平台应用程序中显示该日历上发布的事件。这是我到目前为止的代码。

 var html = @"http://html-agility-pack.net/";
 HtmlWeb web = new HtmlWeb();
 HtmlDocument htmldoc = new HtmlAgilityPack.HtmlDocument();
 var htmlDoc = web.LoadFromWebAsync(html);
 HtmlNodeCollection node=htmlDoc.DocumentNode.SelectSingleNode("//body");

我得到的错误是:

"'Task HtmlDocument' 不包含 "DocumentNode' and no extension method 'DocumentNode' accepting a first argument of type 'Task HtmlDocument' could be found (are you missing a using directive or an assembly reference?"

的定义

我在 Xamarin 中使用 NuGet 包管理器安装了 HtmlAgilityPack,所以它在我对整个项目的引用中,我正在使用 "using HtmlAgilityPack;" 我在对象浏览器中查看了 HAP,显然有一个 "DocumentNode"属性 这就是为什么我对为什么它不认为存在感到困惑。

我不知道我缺少什么,请帮忙。

调用异步方法时需要使用await

// htmlDoc is a Task<HtmlDocument>
var htmlDoc = web.LoadFromWebAsync(html);

// htmlDoc is a HtmlDocument
var htmlDoc = await web.LoadFromWebAsync(html);