我有一些文件顯示在瀏覽器中,然後我使用文件,另存爲..將文本放置在本地文件中。該頁面有一些腳本,它不會在WinForm的WebBrowserControl中正確顯示。該問題似乎是腳本,因爲控件顯示「腳本錯誤」對話框。我並不需要查看該文件,而只需通過ID檢索一些元素。在VB.Net中讀取HTML文件
下面的第一塊代碼確實將文件加載到本地對象中,但只加載了前4096個字節。 (如果我使用一個WebBrowser居民在表單上同樣的情況。)
第二塊不抱怨,但由於所需的元素是超越第一4096
Dim web As New WebBrowser
web.AllowWebBrowserDrop = False
web.ScriptErrorsSuppressed = True
web.Url = New Uri(sFile)
Dim doc As HtmlDocument
Dim elem As HtmlElement
doc = web.Document
elem = doc.GetElementById("userParts")
我在做什麼了失敗的getElementById錯誤?
是否有一個更好的方法來加載一個HTML文檔,我可以從中讀取元素的VB.Net WinForm項目?
我只是很簡單的任務字符串函數就在眼前:
Function GetInnerTextByID(html As String, elemID As String) As String
Try
Dim s As String = html.Substring(html.IndexOf("<body>"))
s = s.Substring(s.IndexOf(elemID))
s = s.Substring(s.IndexOf(">") + 1)
s = s.Substring(0, s.IndexOf("<"))
s = s.Replace(vbCr, "").Replace(vbLf, "").Trim
Return s
Catch ex As Exception
Return ""
End Try
End Function
我仍然有興趣在本地VB.Net(非ASP)的方式。或者爲什麼OP只加載4096字節。
您可以使用['HtmlAgilityPack'](http://htmlagilitypack.codeplex.com/) – 2014-09-30 21:46:03
正確 - 但對我簡單的t過於複雜通過ID提取幾個元素。 – rheitzman 2014-09-30 21:52:01
它還有一個非常簡單的'document.GetElementById'方法。它沒有腳本或字節的奇怪問題。只需從網頁,文件或純字符串中加載文檔。 – 2014-09-30 21:57:27