想知道是否有人可以給我一些指導。我花了相當多的時間在它上面,似乎沒有得到任何地方:在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