Analyser le langage HTML à l'aide de HtmlAgilityPack en C # pour une application multiplate-forme Xamarin

c# html-agility-pack xamarin

Question

J'essaie d'analyser un calendrier en ligne pour que les événements affichés sur ce calendrier s'affichent dans mon application multiplate-forme. C'est le code que j'ai jusqu'à présent.

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

L'erreur que je reçois est la suivante:

"'Task HtmlDocument' ne contient pas de définition pour" DocumentNode 'et aucune méthode d'extension' DocumentNode 'acceptant un premier argument de type' Task HtmlDocument 'n'a pu être trouvée (il manque une directive using ou une référence d'assembly? "

J'ai installé HtmlAgilityPack à l'aide du gestionnaire de paquets NuGet dans Xamarin, ce qui figure dans mes références pour l'ensemble du projet et j'utilise "en utilisant HtmlAgilityPack;" J'ai visualisé le HAP dans l'explorateur d'objets et il existe clairement une propriété "DocumentNode", raison pour laquelle je ne comprends pas pourquoi il ne pense pas qu'il existe.

Je ne sais pas ce qui me manque, aidez-moi s'il vous plaît.

Réponse acceptée

vous devez utiliser wait lorsque vous appelez une méthode asynchrone

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

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


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow