¿Cómo convierto el XML en un XDocument a un MemoryStream, sin guardar nada en el disco?Convierte XDocument a Stream
35
A
Respuesta
27
Eche un vistazo al método XDocument.WriteTo; por ejemplo:
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
En .NET 4 y posteriores, se puede guardar a un MemoryStream
:
Stream stream = new MemoryStream();
doc.Save(stream);
// Rewind the stream ready to read from it elsewhere
stream.Position = 0;
En .NET 3.5 y anteriores, lo que se necesita para crear un XmlWriter
basado en un MemoryStream
y guardar para eso, como se muestra en dtb's answer.
+0
Me pregunto si ambos enfoques agregan \ r \ n y espacios en blanco. Sería genial tener una opción fácil aquí (en lugar de sobrecargar el XmlWriter existente) – 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);
}
Cuestiones relacionadas
- 1. Crear un nuevo XDocument a partir de un XDocument existente
- 2. convertir una cadena a Stream
- 3. ¿Convierte un StreamWriter a OutputStream en java?
- 4. Convertir DataTable a CSV stream
- 5. Convierte System.Drawing.Image a System.Windows.Controls.Image?
- 6. Convierte Char a Int
- 7. Convierte PrintStream a PrintWriter
- 8. Convierte BitSet a int
- 9. Convierte BSTR a char *
- 10. Convierte cadena a datetime
- 11. Convierte latin1 a UTF8
- 12. ¿Convierte NSString a NSInteger?
- 13. zlib de C++ a C# (Cómo convertir byte [] a stream y stream to byte [])
- 14. Utilice XDocument como fuente para XmlSerializer.Deserialize?
- 15. nodos Extracción de XDocument
- 16. Rendimiento: XDocument versus XmlDocument
- 17. Convierte XLSX a CSV correctamente
- 18. iPhone - ¿Convierte CTFont a UIFont?
- 19. C# - Convierte decimal a int32
- 20. Python Convierte fracción a decimal
- 21. Convierte T-SQL a MySQL
- 22. Convierte de char * a NSString?
- 23. HTTP Post convierte € a? símbolo
- 24. Convierte la cadena a java.util.Date
- 25. Python convierte decimal a hexadecimal
- 26. Convierte FlowDocument a texto simple
- 27. Guardar micrófono Stream a mp3 o wave
- 28. ¿Cómo convierto byte [] a stream en C#?
- 29. Analizando XML usando XDocument
- 30. XDocument o XmlDocument
O .Save - pero el ejemplo tiene ;-P –
@Marc ¿Cuál es la diferencia entre WriteTo() y Save()? –
@Daniel Fortunov: .Save proporciona más sobrecargas, pero todas terminan llamando a .WriteTo – dtb