Question

Je voudrais savoir s'il existe un moyen simple pour analyser HTML dans vb.net. Je sais que HTML n'est pas sctrict sous-ensemble de XML, mais ce serait bien si elle pouvait être traitée de cette façon. Y at-il là-bas qui me permettrait parser HTML de façon XML comme dans VB.net?

Était-ce utile?

La solution

J'aime Html Pack Agilité - il est développeur très sympathique, gratuit et code source est disponible.

Autres conseils

'ajouter prog ref aussi: Microsoft.mshtml

'puis sur la page:

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

:

Si votre code HTML conforme aux normes XHTML, vous pouvez faire beaucoup de l'analyse et de traitement en utilisant les classes d'espace de noms System.Xml.

Si, d'autre part, si ce que vous êtes analyse est ce que les développeurs web appellent « soupe tag », vous aurez besoin d'un analyseur tiers comme HTML Agility pack .

Cela peut être qu'une solution partielle à votre problème si vous essayez de comprendre comment un navigateur interprétera votre code HTML que chaque navigateur parse légèrement différente soupe tag.

Ne pas utiliser pack agilité, il suffit d'utiliser mshtml bibliothèque pour accéder au dom, c'est-à-dire ce que les utilisations et est idéal pour passer par les éléments HTML.

Pack Agility est méchant et sans nécessité hackie si vous me demandez, mshtml est le chemin à parcourir. Regardez-le sur msdn.

Est-il bien formé? Si le code HTML est en fait bien formé alors il peut être analysé comme XML. Si elle est la soupe tag et il y a des éléments et non fermés comme je pense que vous auriez à chasser autour d'une solution tierce.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top