Como você analisar um HTML em vb.net
-
21-08-2019 - |
Pergunta
Eu gostaria de saber se existe uma maneira simples de analisar HTML em vb.net. Eu sei que o HTML não é subconjunto sctrict de XML, mas seria bom se pudesse ser tratada dessa forma. Existe alguma coisa lá fora, que me deixou analisar HTML em um XML-like forma VB.net?
Solução
Gosto Html agilidade embalar - é muito desenvolvedor amigável, livre e de código-fonte está disponível.
Outras dicas
'add prog ref também: Microsoft.mshtml
', em seguida, na 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 encontrado aqui :
Se o seu HTML segue padrões XHTML, você pode fazer um monte de análise e processamento usando as classes System.XML namespace.
Se, por outro lado, se o que você está de análise é o que os desenvolvedores web se referem como "tag sopa", você vai precisar de um analisador de terceiros como o HTML agilidade pack .
Isso pode ser apenas uma solução parcial para o problema, se você está tentando descobrir como um navegador irá interpretar o seu HTML como cada parses navegador tag sopa de forma ligeiramente diferente.
Não use agilidade pack, basta usar biblioteca mshtml para acessar o dom, isso é o que isto é, os usos e é ótimo para passar por elementos HTML.
pacoteAgility é Hackie desagradável e desnecessariamente, se você me perguntar, mshtml é o caminho a percorrer. Olhe-se no MSDN.
É bem formado? Se o HTML é na verdade bem formado, então ele pode ser analisado como XML. Se for tag sopa e há elementos não fechadas e como eu acho que você teria que caçar em torno de uma solução de terceiros.