Как вы анализируете HTML в vb.net - PullRequest
16 голосов
/ 05 февраля 2009

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

Ответы [ 5 ]

13 голосов
/ 09 апреля 2010

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

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

7 голосов
/ 05 февраля 2009

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

4 голосов
/ 24 октября 2010

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

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

4 голосов
/ 05 февраля 2009

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

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

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

1 голос
/ 05 февраля 2009

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

...