Вопрос

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

Это было полезно?

Решение

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

Другие советы

'добавьте также 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, вы можете выполнить большую часть синтаксического анализа и обработки, используя System.Классы пространства имен XML.

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top