Come si analizza un HTML in vb.net
-
21-08-2019 - |
Domanda
Vorrei sapere se c'è un modo semplice per analizzare HTML in vb.net. So che HTML non è sottoinsieme sctrict di XML, ma sarebbe bello se si potesse essere trattato in questo modo. C'è qualcosa là fuori che mi permetteva di analizzare HTML in modo XML come in VB.net?
Soluzione
Mi piace Html Agility Pack - è molto sviluppatore cordiale, la connessione e il codice sorgente è disponibile.
Altri suggerimenti
'aggiungi prog ref troppo: Microsoft.mshtml
'quindi nella pagina:
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
qui :
Se il codice HTML segue gli standard XHTML, si può fare un sacco di analisi e di elaborazione utilizzando le classi spazio System.Xml.
Se, d'altra parte, se quello che stai analisi è ciò che gli sviluppatori web si riferiscono come "zuppa di tag", avrete bisogno di un parser di terze parti come HTML Agility pacchetto .
Questa può essere solo una soluzione parziale al problema se si sta cercando di capire come un browser interpreterà il codice HTML, come ogni browser analizza zuppa di tag in modo leggermente diverso.
Non utilizzare l'agilità confezione, basta usare MSHTML libreria per accedere al DOM, questo è ciò che vale a dire usi ed è grande per passare attraverso gli elementi HTML.
Agilità pack è brutto e inutilmente hackie se mi chiedete, MSHTML è la strada da percorrere. Cercare informazioni su MSDN.
E 'ben formato? Se il codice HTML è in realtà ben formato allora può essere analizzato come XML. Se si tratta di zuppa di tag e ci sono elementi non chiusa e tale io penserebbe che avrebbe dovuto dare la caccia in giro per una soluzione di terze parti.