Как вы анализируете HTML в vb.net

Я хотел бы знать, есть ли простой способ проанализировать HTML в vb.net - ... Я знаю, что HTML не является подмножеством SCTRICT XML, но было бы неплохо, если бы его можно было обработать таким образом. Есть ли там, что позволит мне разобрать HTML в XML как способ VB.net?

5 ответов


Мне нравится HTML Agility pack - это очень удобный для разработчиков, бесплатный и исходный код доступен.


' добавить 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

Как найти здесь:


Если ваш HTML следует стандартам XHTML, вы можете сделать много синтаксического анализа и обработки с помощью системы.Классы пространства имен XML.

Если, с другой стороны, если вы анализируете то, что веб-разработчики называют "супом тегов", вам понадобится сторонний парсер, такой как HTML Agility Pack.

Это может быть только частичное решение вашей проблемы, если вы пытаетесь выяснить, как браузер будет интерпретировать ваш HTML, поскольку каждый браузер немного анализирует суп тегов иначе.


Не используйте agility pack, просто используйте библиотеку mshtml для доступа к dom, это то, что ie использует и отлично подходит для прохождения HTML-элементов.

Agility pack противный и излишне хакерский, если вы спросите меня,mshtml-это путь. Посмотрите на msdn.


Он хорошо сформирован? Если HTML на самом деле хорошо сформирован, то он может быть проанализирован как XML. Если это суп из тегов, и есть незамкнутые элементы и такие, я думаю, вам придется искать стороннее решение.