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

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

Ответы

Ответ 1

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

Ответ 2

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

Как найдено здесь:

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 5

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