sof*_*fun 3 c# wpf c#-4.0 html-agility-pack htmlelements
我的旧WinForm应用程序使用HtmlElementCollection来处理页面
HtmlElementCollection hec = this.webbrowser.Document.GetElementsByTagName("input");
Run Code Online (Sandbox Code Playgroud)
在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)
{
}
Run Code Online (Sandbox Code Playgroud)
getElementsByTagName()
返回mshtml.IHTMLElementCollection
,每个项目都是一个mshtml.IHTMLElement
类型
编辑
替代解决方案,如果您需要使用WinForms,WebBrowser
您可以使用它而不是WPF.添加对XAML的引用WindowsFormsIntegration
和System.Windows.Forms
创建命名空间,并使用不同的浏览器控件
<Window ...
xmlns:winforms="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms">
<WindowsFormsHost>
<winforms:WebBrowser x:Name="webBrowser"/>
</WindowsFormsHost>
</Window>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6439 次 |
最近记录: |