Bonjour
Je souhaite vous poser deux questions:
1) Comment puis enregistrer en base de donnée un texte contenant du code html et comment le récupérer et avoir ce code html correcte.
2) Comment supprimer toutes les balise HTML d'un texte ?
Merci
Version imprimable
Bonjour
Je souhaite vous poser deux questions:
1) Comment puis enregistrer en base de donnée un texte contenant du code html et comment le récupérer et avoir ce code html correcte.
2) Comment supprimer toutes les balise HTML d'un texte ?
Merci
1) code html ou pas, cela s'enregistre de la même façon. Cela dit, suivant la version de ta base utilisée, tu peux avoir des avertissements/contraintes de sécurité. Certains caractères du code html peuvent également poser des problèmes notamment d'interprétation. Tu peux utiliser des caractères d'échappement pour y remédier.
Un code classique (pour moi en tout cas) en SQL consiste au remplacement du caractère '<' pour éviter des problèmes de sécurité:
2) Pour supprimer les balises html d'un texte, tu pourrais passer par les regex. Mais le plus simple est de faire un 'replace' sur ta string comme dans le code que j'ai précédement posté.Code:
1
2
3
4
5
6
7
8 public static string EncodageHTML(string html) { html.Replace("<", "<"); } public static string DecodageHTML(string html) { html.Replace("<", "<"); }
Heu, asp.net propose déjà une méthode pour l'encodage : HtmlEncode
http://msdn.microsoft.com/en-us/libr...de(vs.71).aspx
Et l'inverse : HtmlDecode
http://msdn.microsoft.com/en-us/libr...de(VS.71).aspx
Pas la peine de réinventer la roue.
euh...pour l'échappement, autant utiliser htmlencode ;)
Edit: perdu :aie:
et pour le regex, qq chose comme :Code:
1
2 string output = Regex.Replace(input, @"</?(?i:script|embed|object|frameset|frame|iframe|meta|link|style)(.|\n)*?>", "");
Ok merci mais comment puis je utiliser ce composant car j'ai fait:
Et il me met une erreur:Code:
1
2
3
4
5 public string TagHTML(string oldHTML) { if (oldHTML != null) { return HttpServerUtility.HtmlDecode(oldHTML);
An object reference is required for the non-static field, method, or property 'System.Web.HttpServerUtility.HtmlDecode(string)'
Pour la question 2: supprimer toute les balise html possible comment puis je faire ?
Merci
Question 1
=>Citation:
HttpServerUtility
Citation:
HttpUtility
Question 2
regex. ce qui t'as déjà été donné plus hautCitation:
Pour la question 2: supprimer toute les balise html possible comment puis je faire ?
Bonjour,
j'avais le meme probleme, et j'ai decouvert qu'avec l'API SharePoint il existait une classe qui permettait de le faire de façon impécable.
Microsoft.SharePoint.Utilities.SPHttpUtility.ConvertSimpleHtmlToText
mais pour cela, tu dois ajouter une reference de la DLL SharePoint a ta solution.Code:
1
2 Microsoft.SharePoint.Utilities.SPHttpUtility.ConvertSimpleHtmlToText()
j'ai pas pu trouver un truc en .NET qui permettait de le faire automatiquement.
Cordialement.
Merci des réponse.
Pour la question 2 : j'ai fait ceci
Du site : http://www.webpronews.com/expertarti...-from-a-stringCode:
1
2
3
4
5
6
7
8
9
10 public static string StripHtml(string html, bool allowHarmlessTags) { if (html == null || html == string.Empty) return string.Empty; if (allowHarmlessTags) return System.Text.RegularExpressions.Regex.Replace(html, "", string.Empty); return System.Text.RegularExpressions.Regex.Replace(html, "<[^>]*>", string.Empty); }
Pour la question une effectivement je devais:
MerciCode:
1
2
3
4
5 public string TagHTML(string oldHTML) { if (oldHTML != null) { return HttpUtility.HtmlDecode(oldHTML);