2010-01-09 5 views

Répondre

4

En utilisant System.Web pour HTML il y a:

Pour XML échapper, vous pouvez utiliser le SecurityElement.Escape method dans l'espace de noms System.Security. Cependant, il n'y a pas d'équivalent à l'unescape dont je suis conscient. Vous devrez écrire votre propre méthode qui remplace le code XML codé, tel que < et & etc. avec leurs équivalents. Le lien de la méthode d'échappement répertorie les autres éléments.

+0

Je vote cette place comme la moitié de la réponse (juste besoin de la partie XML) et pour répondre sacrément vite! –

+0

Voir mise à jour ... ajout de liens maintenant ... –

+0

Je vais aller de l'avant et dire que vous avez cloué celui-ci. L'effacement XML est en fait la chose la plus importante pour la tâche que je suis actuellement, mais sachant qu'il n'y a pas de place pour regarder dans l'espace de noms du système est au moins mieux que de lire des articles MSDN toute la journée. –

1

Vous pouvez utiliser les HtmlEncode et HtmlDecode pour les remplacements de code HTML. Vos options pour l'échappement XML peuvent être trouvées here.

3
public static class StringEscapeUtils 
{ 
    public static string EscapeXml(string unescaped) 
    { 
     return SecurityElement.Escape(unescaped); 
    } 

    public static string UnescapeXml(string escaped) 
    { 
     return escaped.Replace("&lt;", "<") 
         .Replace("&gt;", ">") 
         .Replace("&quot;", "\"") 
         .Replace("&apos;", "'") 
         .Replace("&amp;", "&"); 
    } 

    public static string EscapeHtml(string unescaped) 
    { 
     return HttpUtility.HtmlEncode(unescaped); 
    } 

    public static string UnescapeHtml(string escaped) 
    { 
     return HttpUtility.HtmlDecode(escaped); 
    } 
} 
+0

J'aime l'effort d'enrouler ces différentes fonctions dans une classe StringEscapeUtils. Ces réponses sont au coude à coude en termes d'utilité. Je les vote tous les deux, mais je devais en choisir un comme «Réponse», donc je suis allé avec le premier. Vous avez certainement gagné votre réputation 17.1K. –