Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CONVERTIR ENTITÉS HTML EN CARACTÈRE


Information sur la source

Description

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

Source

  • '*****************************************************************************************
  • '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(" ", "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("™", "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("Œ", "338")
  • NametoNum.Add("œ", "339")
  • NametoNum.Add("Š", "352")
  • NametoNum.Add("š", "353")
  • NametoNum.Add("Ÿ", "376")
  • NametoNum.Add("ˆ", "710")
  • NametoNum.Add("˜", "732")
  • NametoNum.Add(" ", "8194")
  • NametoNum.Add(" ", "8195")
  • NametoNum.Add(" ", "8201")
  • NametoNum.Add("‌", "8204")
  • NametoNum.Add("‍", "8205")
  • NametoNum.Add("‎", "8206")
  • NametoNum.Add("‏", "8207")
  • NametoNum.Add("–", "8211")
  • NametoNum.Add("—", "8212")
  • NametoNum.Add("‘", "8216")
  • NametoNum.Add("’", "8217")
  • NametoNum.Add("‚", "8218")
  • NametoNum.Add("“", "8220")
  • NametoNum.Add("”", "8221")
  • NametoNum.Add("„", "8222")
  • NametoNum.Add("†", "8224")
  • NametoNum.Add("‡", "8225")
  • NametoNum.Add("…", "8230")
  • NametoNum.Add("‰", "8240")
  • NametoNum.Add("‹", "8249")
  • NametoNum.Add("›", "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
'*****************************************************************************************
    '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(" ", "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("™", "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("Œ", "338")
        NametoNum.Add("œ", "339")
        NametoNum.Add("Š", "352")
        NametoNum.Add("š", "353")
        NametoNum.Add("Ÿ", "376")
        NametoNum.Add("ˆ", "710")
        NametoNum.Add("˜", "732")
        NametoNum.Add(" ", "8194")
        NametoNum.Add(" ", "8195")
        NametoNum.Add(" ", "8201")
        NametoNum.Add("‌", "8204")
        NametoNum.Add("‍", "8205")
        NametoNum.Add("‎", "8206")
        NametoNum.Add("‏", "8207")
        NametoNum.Add("–", "8211")
        NametoNum.Add("—", "8212")
        NametoNum.Add("‘", "8216")
        NametoNum.Add("’", "8217")
        NametoNum.Add("‚", "8218")
        NametoNum.Add("“", "8220")
        NametoNum.Add("”", "8221")
        NametoNum.Add("„", "8222")
        NametoNum.Add("†", "8224")
        NametoNum.Add("‡", "8225")
        NametoNum.Add("…", "8230")
        NametoNum.Add("‰", "8240")
        NametoNum.Add("‹", "8249")
        NametoNum.Add("›", "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

Commentaires et avis

signaler à un administrateur
Commentaire de Pym Corp le 17/03/2006 18:52:42

Ca serait pas mal de faire une fonction qui permet l'inverse également.

signaler à un administrateur
Commentaire de olixelle le 17/03/2006 19:59:14

c clair mais g la flemme :)

ebn gros ca donnerait ca (remplacer que la partie du bas)
____________________________________________________________________
dim elt as dictionnaryentry
for each elt in NametoNum
    e_txt = e_txt.replace(chr(elt.value), elt.key)
next
return e_txt
____________________________________________________________________

Mais c largement moins optimisé qu'avec les regexp !

signaler à un administrateur
Commentaire de olid le 20/03/2006 11:59:32

Quelle courage pour tout saisir... Merci du kdo :o)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Avis aux experts en Expression régulières (correction) [ par fanteris ] Bonjour &#224; tous,Je veux remplacer "&" par "&#38 ;", dans une chaine pouvant contenir d'autres expressions du type "&#233 ;".Le but est de remplace Avis aux experts en Expression régulières (correction) [ par fanteris ] Bonjour &#224; tous,Je veux remplacer "&" par "&#38 ;", dans une chaine pouvant contenir d'autres expressions du type "&#233 ;".Le but est de remplace Expression reguliere, recuperer balise HTML [ par Atomos83 ] Bonsoir, j'ai un petit problème avec les expressions régulière.En faite, j'ai un fichier .txt qui contient le code source d'une page web, j'aimerais p Expressions régulière [ par cmiss16 ] Bonjour,Voici mes expressions:nom_1111.htmlweb/nom_1111.htmlJ'ai créé deux expressions régulières:[\w\-\+\/]+_([0-9]+)\.(html)<br / HTML et VB6 [ par cheyenne ] Bonjour, Mon problème est le suivant :J'utilise dans VB6 le webBrowser en appellant un fichier html. Je demande à ce fichier de récupérer sur un sit enregistrer le code html d'une page web [ par spootnic22 ] Salut,mon problème c'est que je veux enregister le code html  d'une page web dans un repertoir par exemple(d:\production\)(ce code html est récupéré d vba expressions régulières [ par nemetos ] Bonjour,peut-on utiliser les expressions régulières en vba excel ? si oui c'est quoi les fonctions de base (test, remplace) ?MerciPizza Dude vb6+sauvegarder dynamique [ par didmousta ] Salut,l'enregistrement s'effectue sur plusieurs fois au cours de la même session de mon appli et aussi  quelle que soit la session que je peux ouvrir; Lire un html au complet [ par rocker ] Salut, voila mon probleme, j'ai mon 2 programme en connection winsock. Lorsque le premier demande au 2e un fichier html, le 2e l'ouvre puis l'envoi pa vb6+recuperer le nom de fichier [ par spootnic22 ] Salut,J'ai un dossier qui contient par exemple 6 fichiers :file1.html ,file2.html, file3.html, file4.html,file5.html,file6.htmlComment je peux récuper


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.