我想知道是否有一种简单的方法来解析vb.net中的HTML。 我知道HTML不是XML的sctrict子集,但如果可以这样对待它会很好。有没有什么可以让我在VB.net中以类似XML的方式解析HTML?
答案 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。如果它是标签汤,并且有未公开的元素,我认为你将不得不寻找第三方解决方案。