WPF WebBrowser에서 HtmlElementCollection을 가져 오는 방법

c# c#-4.0 html-agility-pack htmlelements wpf

문제

내 오래된 WinForm 응용 프로그램은 HtmlElementCollection을 사용하여 페이지를 처리했습니다.

HtmlElementCollection hec = this.webbrowser.Document.GetElementsByTagName("input");

WPF WebBrowser에는 여러 가지가 있습니다. 예를 들어

this.webbrowser.Document 에는 GetElementsByTagName 이라는 메서드가 없습니다.

따라서 내 코드는 HtmlElementCollection을 가져올 수 없습니다.

수락 된 답변

Microsoft.mshtml 에 대한 참조를 추가해야합니다. 그런 다음 mshtml.HTMLDocument 문서를 캐스팅해야합니다. 그런 다음 getElementsByTagName() 메서드를 사용할 수 있어야합니다.

 var document = webBrowser.Document as mshtml.HTMLDocument;
 var inputs = document.getElementsByTagName("input");
 foreach (mshtml.IHTMLElement element in inputs)
 {

 }

getElementsByTagName()mshtml.IHTMLElementCollection 반환하고 각 항목은 mshtml.IHTMLElement 유형입니다.

편집하다

WPF 대신 WinForms WebBrowser 를 사용해야하는 경우 다른 솔루션을 사용할 수도 있습니다. WindowsFormsIntegrationSystem.Windows.Forms 대한 참조를 추가하고 XAML에서 네임 스페이스를 만들고 다른 브라우저 컨트롤 사용

 var document = webBrowser.Document as mshtml.HTMLDocument;
 var inputs = document.getElementsByTagName("input");
 foreach (mshtml.IHTMLElement element in inputs)
 {

 }



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.