Анализ html с использованием HtmlAgilityPack в C # для кросс-платформенного приложения Xamarin

c# html-agility-pack xamarin

Вопрос

Я пытаюсь разобрать онлайн-календарь, чтобы события, размещенные на этом календаре, отображались в моем кросс-платформенном приложении. Это код, который у меня есть до сих пор.

 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");

Ошибка, которую я получаю:

«Задача HtmlDocument» не содержит определения для «DocumentNode» и не может быть найден метод расширения «DocumentNode», принимающий первый аргумент типа «Task HtmlDocument» (вам не хватает директивы using или ссылки на сборку? »

Я установил HtmlAgilityPack, используя диспетчер пакетов NuGet в Xamarin, поэтому он находится в моих ссылках на весь проект, и я использую «using HtmlAgilityPack»; Я просмотрел HAP в браузере объектов, и есть явно свойство DocumentNode, поэтому я смущен тем, почему он не считает, что есть.

Я не знаю, что мне не хватает, пожалуйста, помогите.

Принятый ответ

вам нужно использовать ожидание при вызове метода async

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

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


Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow