Supprimer tout le code HTML d’une chaîne
J’ai une chaîne de caractères contenant du code HTML. Comment supprimer tout ce code automatiquement ?
Le principe
Soit une chaîne de caractères contenant du code HTML. Par exemple :
<html><body>Ceci est un <b>test</b>.</body></html>
L’idée est d’extraire toutes les balises HTML pour ne conserver que la phrase :
1 |
Ceci est un test. |
Version Access 2007
Access 2007 propose une fonction PlainText()
qui va faire l’affaire :
- Ouvrez la fenêtre Exécution (
CTRL
+G
). - Tapez-y quelque chose comme ce qui suit, et tapez
[Entrée]
.
1 |
? PlainText("<html><body>Ceci est un <b>test</b>.</body></html>") |
Et c’est tout !
Version 2003 et inférieure
Si vous disposez d’un Access 2003 (ou moins), ce n’est pas si simple que ça : il faut passer par du VBA, détecter tout ce qui ressemble à une balise, enlever le superflu… tout ça quoi ! Une fois encore, les expressions rationnelles (appelées plus souvent « expressions régulières« ) vont nous sortir d’affaire. Pour la mise en place générale de la bibliothèque VBScript Regular Expressions, consultez le début de cet autre article.
La fonction VBA
Voici la fonction VBA qui va s’occuper du nettoyage :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
' --- ' SUPPRESSION DES BALISES HTML D'UNE CHAINE ' --- ' Function SupprimerHTML(ByVal strHTML As String) As String Dim re As VBScript_RegExp_55.RegExp ' On crée une expression rationnelle Set re = New RegExp ' On définit le critère qui cherche toute balise HTML re.Pattern = "<s*?[^>]+s*?>" ' On fait en sorte que la casse (majuscules/minuscules) ' soit indifférente re.IgnoreCase = True ' Traitement global (récursif) re.Global = True ' La fonction Test renvoie True si la chaîne ' respecte le critère SupprimerHTML = re.Replace(strHTML, "") End Function |
Tester la fonction
Une fois la fonction ci-dessus recopiée dans un module standard…
- Ouvrez la fenêtre Exécution (
CTRL
+G
). - Tapez-y quelque chose comme ce qui suit, et tapez
[Entrée]
.
1 |
? SupprimerHTML("<html><body>Ceci est un <b>test</b>.</body></html>") |
Tadaaa !
Patrick > Merci de poster en minuscules, et de mettre _un peu_ les formes… 😉
Quelle est la question, plus clairement ?
JE VOUDRAIS QUE ONT ME SUPRIME LA BARRE BLEU HTML
JE VOUDRAIS QUON ME SUPRIME LA BARRE BLEU HTML
MAS > J’ai supprimé les pubs de ton message. 😉 Vu la teneur, j’ai même tendance à penser que le message n’était là que pour le spam, mais je me trompe peut-être ?! 😉
PlainText(): la fonction miracle, qui lorsque tu ne l’a connais pas, tu t’arraches des cheveux :s
J’ai 2007, alors je m’en sors bien mais je plains ceux qui ont une version inférieure: c’est moins sympathique :p