19

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

4

5 回答 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 回答