.net html vb.net parsing html-content-extraction

¿Cómo se analiza un HTML en vb.net?



parsing html-content-extraction (5)

Me gustaría saber si hay una manera simple de analizar HTML en vb.net. Sé que HTML no es un subconjunto de espectro de XML, pero sería bueno si pudiera tratarse de esa manera. ¿Hay algo por ahí que me permita analizar HTML de forma similar a XML en VB.net?


Está bien formado? Si el HTML está bien formado, entonces se puede analizar como XML. Si es una sopa de etiquetas y hay elementos no cerrados, creo que tendrías que buscar una solución de terceros.


Me gusta el paquete Html Agility : es muy amigable para el desarrollador, gratuito y el código fuente está disponible.


Si su HTML sigue los estándares XHTML, puede hacer una gran parte del análisis y procesamiento utilizando las clases de espacio de nombres System.XML.

Si, por otro lado, si lo que está analizando es lo que los desarrolladores web llaman "sopa de etiquetas", necesitará un analizador de terceros como HTML Agility Pack .

Esta puede ser solo una solución parcial a su problema si está tratando de descubrir cómo un navegador interpretará su HTML, ya que cada navegador analiza la sopa de etiquetas de forma ligeramente diferente.


No use el paquete de agilidad, solo use la biblioteca mshtml para acceder al dom, esto es lo que utiliza, por ejemplo, y es ideal para usar elementos HTML.

El paquete de agility es desagradable e innecesariamente hackie si me preguntas, mshtml es el camino a seguir. Búscalo en msdn.


''agregar prog ref también: Microsoft.mshtml

''luego en la página:

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

Como se encuentra aquí :