크로스 플랫폼 Xamarin 앱을 위해 C #에서 HtmlAgilityPack을 사용하여 HTML 파싱하기

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 "에 대한 정의가없고 'TaskNodeDocument'유형의 첫 번째 인수를 수락하는 확장 메서드 'DocumentNode'가 없습니다 (지시문이나 어셈블리 참조가 누락 되었습니까?)

Xamarin의 NuGet 패키지 관리자를 사용하여 HtmlAgilityPack을 설치 했으므로 전체 프로젝트에 대한 내 참조에 있으며 "HtmlAgilityPack 사용"을 사용하고 있습니다. 나는 객체 브라우저에서 HAP을 보았고 명확하게 "DocumentNode"속성이있어서 왜 그것이 존재하지 않는지 왜 혼란 스럽습니까?

내가 빠진 것이 무엇인지 모릅니다. 제발 도와주세요.

수락 된 답변

비동기 메서드를 호출 할 때 기다려야합니다.

// 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