Analisi di html utilizzando HtmlAgilityPack in C # per un'applicazione Xamarin multipiattaforma

c# html-agility-pack xamarin

Domanda

Sto cercando di analizzare un calendario online per visualizzare gli eventi sul calendario in questione nella mia app multipiattaforma. Questo è il codice che ho finora.

 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'errore che sto ottenendo è:

"'Task HtmlDocument' non contiene una definizione per" DocumentNode "e non è possibile trovare alcun metodo di estensione 'DocumentNode' che accetta un primo argomento di tipo 'Task HtmlDocument' (ti manca una direttiva using o un riferimento assembly?"

Ho installato HtmlAgilityPack usando il gestore di pacchetti NuGet in Xamarin, quindi è nei miei riferimenti per l'intero progetto e sto usando "using HtmlAgilityPack;" Ho visto l'HAP nel browser degli oggetti e c'è chiaramente una proprietà "DocumentNode", motivo per cui sono confuso sul motivo per cui non pensa che ci sia.

Non so cosa mi manca, per favore aiuto.

Risposta accettata

è necessario utilizzare attendere quando si chiama un metodo asincrono

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

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


Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché