Quelle est la meilleure façon de sérialiser une chaîne arbitraire (dans un attribut XML ou un noeud XML) dans un flux XML afin que le XML reste valide (les caractères spéciaux, les retours à la ligne, etc. codé en quelque sorte).Sérialiser une chaîne arbitraire en XML dans .NET
2
A
Répondre
4
Je voudrais simplement utiliser un DOM (comme XmlDocument
ou XDocument
), ou pour les fichiers énormes, XmlWriter
:
XDocument xdoc = new XDocument(new XElement("xml", "a < b & c"));
Console.WriteLine(xdoc.ToString());
XmlDocument xmldoc = new XmlDocument();
XmlElement root = xmldoc.CreateElement("xml");
xmldoc.AppendChild(root).InnerText = "a < b & c";
Console.WriteLine(xmldoc.OuterXml);
StringBuilder sb = new StringBuilder();
XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
using (XmlWriter xw = XmlWriter.Create(sb, settings))
{
xw.WriteElementString("xml", "a < b & c");
}
Console.WriteLine(sb);
1
est-ce pas exactement ce que CDATA est destiné à être utilisé pour en XML? Tout ce que vous devez faire attention est que vos données ne contiennent pas "]]>"
, ou que vous leur échapper d'une manière ou d'une autre en utilisant la technique C traditionnelle:
Encoding:
'\' becomes '\\'
']' becomes '\]'
Decoding:
'\]' becomes ']'
'\\' becomes '\'
Questions connexes
- 1. Sérialiser la ligne Oracle en XML
- 2. Comment analyser XML dans une chaîne dans .NET?
- 3. Comment (xml) sérialiser un uri
- 4. Annotations XML sérialiser
- 5. Comment sérialiser des collections dans .net
- 6. Comment sérialiser une chaîne ne contenant que "\ r \ n" en XML correctement?
- 7. Sérialiser le dictionnaire Python en XML
- 8. Convertir une chaîne en .net
- 9. Comment sérialiser un objet en XML sans obtenir xmlns = "..."?
- 10. Comment XML sérialiser un 'Type'
- 11. Comment sérialiser un objet COM dans .Net?
- 12. De/Sérialiser directement vers/depuis XML Linq
- 13. en continu XML sérialisation en .net
- 14. Sérialiser en XML et inclure le type de l'objet sérialisé
- 15. Analyser une chaîne XML dans MySQL
- 16. Chaîne numérique (taille arbitraire) -> Nombre entiers
- 17. XML Sérialiser de grandes collections d'objets
- 18. Comment sérialiser un objet JavaScript générique en XML
- 19. Comment formater conditionnellement une chaîne dans .Net?
- 20. Convertir une chaîne en flux d'entrée XML en Java
- 21. En boucle via XML dans .NET?
- 22. vs Chaîne dans .NET
- 23. Instancier une classe arbitraire dans Objective C
- 24. Sérialiser une structure en C# vers C++ et vice versa
- 25. Invoquer une méthode sur un objet .NET dans une autre application arbitraire
- 26. sérialisation XML .NET en 2009
- 27. comprehension Chaîne^en C++ .Net
- 28. Comment attraper une exception arbitraire dans Haskell?
- 29. Meilleure façon d'analyser une chaîne XML en Java?
- 30. Comment sérialiser DateTime nullable dans un service Web .net?