Comment convertir le XML d'un document XDocument en mémoire MemoryStream sans rien sauvegarder sur le disque?Conversion de XDocument en flux
35
A
Répondre
27
Jetez un oeil à la méthode XDocument.WriteTo; par exemple:
using (MemoryStream ms = new MemoryStream())
{
XmlWriterSettings xws = new XmlWriterSettings();
xws.OmitXmlDeclaration = true;
xws.Indent = true;
using (XmlWriter xw = XmlWriter.Create(ms, xws))
{
XDocument doc = new XDocument(
new XElement("Child",
new XElement("GrandChild", "some content")
)
);
doc.WriteTo(xw);
}
}
24
Dans .NET 4 et versions ultérieures, vous pouvez l'enregistrer dans un MemoryStream
:
Stream stream = new MemoryStream();
doc.Save(stream);
// Rewind the stream ready to read from it elsewhere
stream.Position = 0;
Dans .NET 3.5 et versions antérieures, vous devez créer un XmlWriter
basé sur un MemoryStream
et enregistrer à cela, comme indiqué dans dtb's answer.
+0
Je me demande si les deux approches ajoutent \ r \ n et les espaces. Ce serait génial d'avoir une option facile ici (plutôt que de surcharger le XmlWriter existant) – beanmf
0
XDocument doc = new XDocument(
new XElement(C_ROOT,
new XElement("Child")));
using (var stream = new MemoryStream())
{
doc.Save(stream);
stream.Seek(0, SeekOrigin.Begin);
}
Questions connexes
- 1. Conversion de flux de fichiers jpg en flux FLV
- 2. Conversion de base de nombre en tant qu'opération de flux
- 3. ViewModel au-dessus de XDocument
- 4. Conversion de flux MBCS en UTF-8 et vice versa en C++
- 5. Recherche XDocument simple LINQ
- 6. Conversion de nmake en
- 7. Xdocument n'imprime pas la déclaration
- 8. Impossible de charger XmlReader dans XDocument
- 9. Comment imprimer <? Xml version = « 1.0 »?> En utilisant XDocument
- 10. Convertir le flux RTF en flux de texte brut
- 11. Stockage d'images avec LINQ to SQL: Conversion d'un tableau d'octets ou d'un flux en binaire
- 12. Conversion de type en C#
- 13. Conversion de "document.getElementById" en jQuery
- 14. Conversion de ref en TBuf
- 15. Conversion de l'assembly en byte []
- 16. Conversion de System.Linq.IorderedEnumerable en DataView
- 17. Conversion de Ruby en C#
- 18. Conversion de codage en Java
- 19. Conversion de SQL en HQL
- 20. Conversion de DateTime en OracleTimeStampTZ
- 21. Conversion de stdole.StdPicture en System.Drawing.Icon
- 22. priorité de conversion en C++
- 23. Conversion de Java en C#
- 24. Temps de conversion en PHP?
- 25. Conversion de GUID en chaîne
- 26. Conversion de XML en DataTable
- 27. Conversion de System.types en SMO.DataTypes
- 28. colonnes de conversion en lignes
- 29. Opérateurs de conversion en C++
- 30. Conversion d'un CFG en IL
Ou .Enregistrer - mais l'exemple est valable ;-p –
@Marc Quelle est la différence entre WriteTo() et Save()? –
@Daniel Fortunov: .Save fournit plus de surcharges, mais tous finissent par appeler .WriteTo – dtb