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タイプです

EDIT

代わりの解決策は、WinForms WebBrowserを使用する必要がある場合は、WPFの代わりにそれを使用することができます。 WindowsFormsIntegrationおよびSystem.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は合法ですか? はい、理由を学ぶ