2010-07-08 3 views
1

Comment puis-je facilement nettoyer les valeurs que je transmets dans la propriété Value d'un attribut XAttribute.Assainir les valeurs d'attribut XML

+1

Définissez "assainir" et vous obtiendrez une réponse utile. – spender

+0

Eh bien, fondamentalement, il lance une erreur sur enregistrer qu'il ne peut pas accepter un certain caractère, '/ 0'. Je suppose qu'il y a d'autres caractères qu'il ne peut pas accepter, alors je me demandais s'il y avait une méthode pour les supprimer tous. – Dested

+1

peut-être ajouter cette info à la question réelle ... –

Répondre

1

Voici une méthode d'extension pour nettoyer votre problème./0 n'est pas autorisé en XML. Je ne suis pas sûr si d'autres caractères sont également interdits, mais je ne crois pas. Probablement préférable de commencer à ' '.

void Main() 
{ 

    Console.WriteLine("123\0394".XmlSanitize()); 

} 

public static class XmlHelpers 
{ 
    public static string XmlSanitize(this string badString) 
    { 
     return new String(badString.Where(c => c >=' ').ToArray()); 
    } 
} 
1

Vous pouvez essayer:

string value = "[email protected]#$%^&*()123%^&*([email protected]#\(*!&10987" 
value = System.Security.SecurityElement.Escape(value); 

Cela s'échapper des caractères qui ne sont pas valides en tant que valeurs d'attributs XML.

+0

Nice, mais ne se débarrasse pas du \ 0. – spender

Questions connexes