你如何在vb.net中解析HTML

时间:2009-02-05 16:59:57

标签: .net html vb.net parsing html-content-extraction

我想知道是否有一种简单的方法来解析vb.net中的HTML。 我知道HTML不是XML的sctrict子集,但如果可以这样对待它会很好。有没有什么可以让我在VB.net中以类似XML的方式解析HTML?

5 个答案:

答案 0 :(得分: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

答案 1 :(得分:7)

我喜欢Html Agility pack - 它非常适合开发人员,免费且源代码可用。

答案 2 :(得分:4)

如果你的HTML遵循XHTML标准,你可以使用System.XML命名空间类进行大量的解析和处理。

另一方面,如果您正在解析的是Web开发人员所称的“标记汤”,那么您需要第三方解析器,如HTML Agility Pack

如果你试图弄清楚浏览器如何解释你的HTML,这可能只是你问题的部分解决方案,因为每个浏览器都会以不同的方式解析标签汤。

答案 3 :(得分:4)

不要使用敏捷包,只需使用mshtml库来访问dom,这就是使用并且非常适合浏览HTML元素。

如果你问我,敏捷包是令人讨厌和不必要的hackie,mshtml是要走的路。在msdn上查找。

答案 4 :(得分:1)

它是否形成良好?如果HTML实际上已经很好地形成,那么它可以被解析为XML。如果它是标签汤,并且有未公开的元素,我认为你将不得不寻找第三方解决方案。