Convertir entités html en caractère

Contenu du snippet

Cette fonction prend en entrée un texte html et converti toutes les entités HTML (é) en leur caractère équivalent (é)

Source / Exemple :


'*****************************************************************************************
    'fonction pour transformer les entités html en caractères "normaux"
    Public Function replace_html_entities(ByVal e_txt As String) As String

        'cree un hashtable avec toutes les possibilités
        Dim NametoNum As New Hashtable
        NametoNum.Add(""", "34")
        NametoNum.Add("'", "39")
        NametoNum.Add("&", "38")
        NametoNum.Add("<", "60")
        NametoNum.Add(">", "62")
        NametoNum.Add("&nbsp;", "160")
        NametoNum.Add("¡", "161")
        NametoNum.Add("¤", "164")
        NametoNum.Add("¢", "162")
        NametoNum.Add("£", "163")
        NametoNum.Add("¥", "165")
        NametoNum.Add("¦", "166")
        NametoNum.Add("§", "167")
        NametoNum.Add("¨", "168")
        NametoNum.Add("©", "169")
        NametoNum.Add("ª", "170")
        NametoNum.Add("«", "171")
        NametoNum.Add("¬", "172")
        NametoNum.Add("­", "173")
        NametoNum.Add("®", "174")
        NametoNum.Add("&trade;", "8482")
        NametoNum.Add("¯", "175")
        NametoNum.Add("°", "176")
        NametoNum.Add("±", "177")
        NametoNum.Add("²", "178")
        NametoNum.Add("³", "179")
        NametoNum.Add("´", "180")
        NametoNum.Add("µ", "181")
        NametoNum.Add("¶", "182")
        NametoNum.Add("·", "183")
        NametoNum.Add("¸", "184")
        NametoNum.Add("¹", "185")
        NametoNum.Add("º", "186")
        NametoNum.Add("»", "187")
        NametoNum.Add("¼", "188")
        NametoNum.Add("½", "189")
        NametoNum.Add("¾", "190")
        NametoNum.Add("¿", "191")
        NametoNum.Add("×", "215")
        NametoNum.Add("÷", "247")
        NametoNum.Add("À", "192")
        NametoNum.Add("Á", "193")
        NametoNum.Add("Â", "194")
        NametoNum.Add("Ã", "195")
        NametoNum.Add("Ä", "196")
        NametoNum.Add("Å", "197")
        NametoNum.Add("Æ", "198")
        NametoNum.Add("Ç", "199")
        NametoNum.Add("È", "200")
        NametoNum.Add("É", "201")
        NametoNum.Add("Ê", "202")
        NametoNum.Add("Ë", "203")
        NametoNum.Add("Ì", "204")
        NametoNum.Add("Í", "205")
        NametoNum.Add("Î", "206")
        NametoNum.Add("Ï", "207")
        NametoNum.Add("Ð", "208")
        NametoNum.Add("Ñ", "209")
        NametoNum.Add("Ò", "210")
        NametoNum.Add("Ó", "211")
        NametoNum.Add("Ô", "212")
        NametoNum.Add("Õ", "213")
        NametoNum.Add("Ö", "214")
        NametoNum.Add("Ø", "216")
        NametoNum.Add("Ù", "217")
        NametoNum.Add("Ú", "218")
        NametoNum.Add("Û", "219")
        NametoNum.Add("Ü", "220")
        NametoNum.Add("Ý", "221")
        NametoNum.Add("Þ", "222")
        NametoNum.Add("ß", "223")
        NametoNum.Add("à", "224")
        NametoNum.Add("á", "225")
        NametoNum.Add("â", "226")
        NametoNum.Add("ã", "227")
        NametoNum.Add("ä", "228")
        NametoNum.Add("å", "229")
        NametoNum.Add("æ", "230")
        NametoNum.Add("ç", "231")
        NametoNum.Add("è", "232")
        NametoNum.Add("é", "233")
        NametoNum.Add("ê", "234")
        NametoNum.Add("ë", "235")
        NametoNum.Add("ì", "236")
        NametoNum.Add("í", "237")
        NametoNum.Add("î", "238")
        NametoNum.Add("ï", "239")
        NametoNum.Add("ð", "240")
        NametoNum.Add("ñ", "241")
        NametoNum.Add("ò", "242")
        NametoNum.Add("ó", "243")
        NametoNum.Add("ô", "244")
        NametoNum.Add("õ", "245")
        NametoNum.Add("ö", "246")
        NametoNum.Add("ø", "248")
        NametoNum.Add("ù", "249")
        NametoNum.Add("ú", "250")
        NametoNum.Add("û", "251")
        NametoNum.Add("ü", "252")
        NametoNum.Add("ý", "253")
        NametoNum.Add("þ", "254")
        NametoNum.Add("ÿ", "255")
        NametoNum.Add("&OElig;", "338")
        NametoNum.Add("&oelig;", "339")
        NametoNum.Add("&Scaron;", "352")
        NametoNum.Add("&scaron;", "353")
        NametoNum.Add("&Yuml;", "376")
        NametoNum.Add("&circ;", "710")
        NametoNum.Add("&tilde;", "732")
        NametoNum.Add("&ensp;", "8194")
        NametoNum.Add("&emsp;", "8195")
        NametoNum.Add("&thinsp;", "8201")
        NametoNum.Add("&zwnj;", "8204")
        NametoNum.Add("&zwj;", "8205")
        NametoNum.Add("&lrm;", "8206")
        NametoNum.Add("&rlm;", "8207")
        NametoNum.Add("&ndash;", "8211")
        NametoNum.Add("&mdash;", "8212")
        NametoNum.Add("&lsquo;", "8216")
        NametoNum.Add("&rsquo;", "8217")
        NametoNum.Add("&sbquo;", "8218")
        NametoNum.Add("&ldquo;", "8220")
        NametoNum.Add("&rdquo;", "8221")
        NametoNum.Add("&bdquo;", "8222")
        NametoNum.Add("&dagger;", "8224")
        NametoNum.Add("&Dagger;", "8225")
        NametoNum.Add("&hellip;", "8230")
        NametoNum.Add("&permil;", "8240")
        NametoNum.Add("&lsaquo;", "8249")
        NametoNum.Add("&rsaquo;", "8250")
        NametoNum.Add("€", "8364")

        'recherche les entités via une expression réguliere
        Dim myregexp As New Regex("&[a-zA-Z0-9]{2,6}\;", RegexOptions.IgnoreCase)
        If myregexp.IsMatch(e_txt) Then
            Dim elt As Match
            For Each elt In myregexp.Matches(e_txt)
                'remplace l'occurence par la valeur associée
                e_txt = Replace(e_txt, elt.Value, Chr(NametoNum(elt.Value)))
            Next
        End If

        Return e_txt

    End Function

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.