Как преобразовать XML в XDocument в MemoryStream, не сохраняя ничего на диске?
Преобразование XDocument в поток
Ответ 1
Посмотрите на метод XDocument.WriteTo; например:.
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);
}
}
Ответ 2
В .NET 4 и более поздних версиях вы можете сохранить его в MemoryStream
:
Stream stream = new MemoryStream();
doc.Save(stream);
// Rewind the stream ready to read from it elsewhere
stream.Position = 0;
В .NET 3.5 и ранее вам нужно создать XmlWriter
на основе MemoryStream
и сохранить его, как показано в dtb answer.
Ответ 3
XDocument doc = new XDocument(
new XElement(C_ROOT,
new XElement("Child")));
using (var stream = new MemoryStream())
{
doc.Save(stream);
stream.Seek(0, SeekOrigin.Begin);
}