我想知道是否有一种简单的方法可以在 vb.net 中解析 HTML。我知道 HTML 不是 XML 的严格子集,但如果可以这样对待它会很好。有什么东西可以让我在 VB.net 中以类似 XML 的方式解析 HTML 吗?
80025 次
5 回答
13
'也添加 prog ref: Microsoft.mshtml
'然后在页面上:
Imports mshtml
Function parseMyHtml(ByVal htmlToParse$) As String
Dim htmlDocument As IHTMLDocument2 = New HTMLDocumentClass()
htmlDocument.write(htmlToParse)
htmlDocument.close()
Dim allElements As IHTMLElementCollection = htmlDocument.body.all
Dim allInputs As IHTMLElementCollection = allElements.tags("a")
Dim element As IHTMLElement
For Each element In allInputs
element.title = element.innerText
Next
Return htmlDocument.body.innerHTML
End Function
如发现here:
于 2010-04-09T03:43:26.723 回答
9
我喜欢Html Agility 包——它对开发人员非常友好、免费且源代码可用。
于 2009-02-05T17:02:07.003 回答
5
不要使用敏捷包,只需使用 mshtml 库来访问 dom,这是 ie 使用的,非常适合浏览 HTML 元素。
如果你问我,敏捷包是讨厌的和不必要的 hackie,mshtml 是要走的路。在msdn上查找。
于 2010-10-23T22:05:38.147 回答
4
如果您的 HTML 遵循 XHTML 标准,则可以使用 System.XML 命名空间类进行大量解析和处理。
另一方面,如果您要解析的是 Web 开发人员所说的“标签汤”,那么您将需要像HTML Agility Pack这样的第三方解析器。
如果您试图弄清楚浏览器将如何解释您的 HTML,因为每个浏览器对标签汤的解析略有不同,这可能只是您问题的部分解决方案。
于 2009-02-05T17:06:46.027 回答
1
是否形成良好?如果 HTML 实际上格式正确,则可以将其解析为 XML。如果它是标签汤并且有未封闭的元素等,我认为您将不得不四处寻找第三方解决方案。
于 2009-02-05T17:02:36.660 回答