Конвертировать XDocument в поток - PullRequest
37 голосов
/ 15 апреля 2009

Как преобразовать XML в XDocument в MemoryStream, не сохраняя ничего на диск?

Ответы [ 3 ]

37 голосов
/ 05 декабря 2011

В .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 .

28 голосов
/ 15 апреля 2009

Взгляните на метод XDocument.WriteTo ; e.g.:

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);
    }
}
1 голос
/ 12 марта 2014
XDocument doc = new XDocument(
    new XElement(C_ROOT,
        new XElement("Child")));
using (var stream = new MemoryStream())
{
    doc.Save(stream);
    stream.Seek(0, SeekOrigin.Begin);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...