Ma demande recevoir des chaînes de l'extérieur et construire un document XMLPourquoi l'API .NET XML ne me protège pas du caractère nul?
string fromOutside = "\0";
XAttribute a = new XAttribute(fromOutside);
lorsque la valeur d'attribut contient le caractère nul alors je suis exception en essayant de sauver XML sur le disque (quand il va en XmlWriter
)
System.ArgumentException : '.', hexadecimal value 0x00, is an invalid character.
Même la classe SecurityElement
ne permet pas
Assert.IsFalse(SecurityElement.IsValidAttributeValue("\0"));
Quel est le meilleur façon de construire le document XML à partir de chaînes qui peuvent contenir des caractères invalides tels que caractère nul, etc.?
Donc, dans mon cas, la seule façon est d'analyser la chaîne et de supprimer null personnages, n'est-ce pas? :-( –
Non, vous pouvez également Base64 encoder la chaîne: 'Convert.ToBase64String (Encoding.UTF8.GetBytes (fromOutside))' –
Base64 n'est pas une option pour moi, car je dois garder la chaîne lisible dans le résultat XML L'exemple de la chaîne peut être "\ 0Mon \ 0 fantaisie val \ 0ue \ 0 \ 0 \ 0" –