Ответ 1
Мне нравится Html Agility pack - это очень удобный для разработчиков, бесплатный и исходный код.
Я хотел бы знать, есть ли простой способ разбора HTML в vb.net. Я знаю, что HTML не является подмножеством sctrict XML, но было бы неплохо, если бы с ним можно было обращаться так. Есть ли что-нибудь, что позволит мне анализировать HTML в XML-виде на VB.net?
Мне нравится 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, вы можете много раз анализировать и обрабатывать, используя классы пространства имен System.XML.
Если, с другой стороны, если вы анализируете то, что веб-разработчики называют "суп-тег", вам понадобится сторонний парсер, например HTML Agility Pack.
Это может быть лишь частичное решение вашей проблемы, если вы пытаетесь понять, как браузер будет интерпретировать ваш HTML, поскольку каждый браузер несколько раз разбирает суп с тегами.
Не используйте пакет гибкости, просто используйте библиотеку mshtml для доступа к dom, это то, что используется и отлично подходит для прохождения через HTML-элементы.
Пакет ловкости - это противный и излишне хаки, если вы спросите меня, mshtml - это путь. Посмотрите на msdn.
Хорошо ли он сформирован? Если HTML на самом деле хорошо сформирован, он может быть проанализирован как XML. Если это суп-тег и есть незакрытые элементы, и я бы подумал, что вам нужно будет искать стороннее решение.