想知道是否有人可以给我一些指导。我花了相当多的时间在它上面,似乎没有得到任何地方:在VB.Net中使用MSHTML来解析HTML
我有一个隐藏的字段,我试图解析出一个HTML文档在VB.Net。我在WPF应用程序中使用System.Windows.Controls.WebBrowser控件并处理LoadCompleted事件。里面的LoadCompleted事件处理程序我做这样的事情:
Dim htmlDocument As mshtml.IHTMLDocument2 = Me.WebBrowser.Document
Dim allElements As mshtml.IHTMLElementCollection = htmlDocument.body.all
Dim hiddenField As mshtml.IHTMLInputElement = allElements.tags("hidField")
,我试图访问的隐藏字段在我的.aspx文件中声明为这样:
<asp:HiddenField runat="server" ID="hidField"/>
的问题是,这allElements.tags("hidField")
返回null。我在做什么错误的mshtml库?我没有太多的经验,并收集到我需要做这样的事情来找到我隐藏的领域元素。让我知道你是否需要更多信息。我在这里先向您的帮助表示感谢。
编辑
这里的是有兴趣的人我最后工作的解决方案:
Dim htmlDocument As mshtml.IHTMLDocument2 = Me.WebBrowser.Document
Dim allElements As mshtml.IHTMLElementCollection = htmlDocument.body.all
Dim allInputs As mshtml.IHTMLElementCollection = allElements.tags("input")
For Each element As mshtml.IHTMLInputElement In allInputs
If element.type = "hidden" And element.name.Contains("hidField") Then
MessageBox.Show(element.value)
End If
Next
好的,这是有道理的。我做了你的建议,并最终得到了该行的异常,我猜是我不正确使用MSHTML的东西:无法将类型为“System .__ ComObject”的COM对象转换为接口类型为“mshtml.IHTMLInputElement ”。此操作失败,因为IIC“{3050F5D2-98B5-11CF-BB82-00AA00BDCE0B}”接口的COM组件上的QueryInterface调用由于以下错误而失败:没有此类接口支持(异常来自HRESULT:0x80004002(E_NOINTERFACE)) 。 – Tom 2011-06-03 16:54:16
我可以试试HTML敏捷包。 – Tom 2011-06-03 16:55:19