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
A
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
Définissez "assainir" et vous obtiendrez une réponse utile. – spender
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
peut-être ajouter cette info à la question réelle ... –