Análisis de html usando HtmlAgilityPack en C # para una aplicación Xamarin multiplataforma

c# html-agility-pack xamarin

Pregunta

Estoy tratando de analizar un calendario en línea para que los eventos publicados en ese calendario se muestren en mi aplicación multiplataforma. Este es el código que tengo hasta ahora.

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

El error que estoy recibiendo es:

"'Task HtmlDocument' no contiene una definición para" DocumentNode 'y no se puede encontrar un método de extensión' DocumentNode 'que acepte un primer argumento del tipo' Task HtmlDocument '(¿falta una directiva de uso o una referencia de ensamblado? "

Instalé HtmlAgilityPack usando el administrador de paquetes de NuGet en Xamarin, así que está en mis referencias para todo el proyecto y estoy usando "using HtmlAgilityPack;" Vi el HAP en el navegador de objetos y hay claramente una propiedad "DocumentNode", por lo que estoy confundido en cuanto a por qué no cree que haya.

No sé qué es lo que me estoy perdiendo, por favor ayuda.

Respuesta aceptada

necesitas usar await cuando llamas a un método asíncrono

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

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



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué