XML и MemoryStream?

#c# #xml #memorystream

#c# #xml #поток памяти

Вопрос:

         MemoryStream oMemoryStream = Common.DecrypetXML(FilePath);
        XmlDocument oXmlDocument = new XmlDocument();
        oXmlDocument.Load(oMemoryStream);

        //Check if year exists
        if (oXmlDocument.DocumentElement.SelectSingleNode("//Year[@Year='"   Year   "']") == null)
        {
            XmlElement oNewYearElement = oXmlDocument.CreateElement("Year");
            oNewYearElement.SetAttribute("Year", Year);
            oXmlDocument.DocumentElement.AppendChild(oNewYearElement);
            oXmlDocument.Save(?????);
        }

        //Check if month exists
        if (oXmlDocument.SelectSingleNode("//Year[@Year='"   Year   "']//Month[@Month='"   Month   "']") == null)
        {
            XmlElement oNewMonthElement = oXmlDocument.CreateElement("Month");
            oNewMonthElement.SetAttribute("Month", Month);
            oXmlDocument.DocumentElement.SelectSingleNode("//Year[@Year='"   Year   "']").AppendChild(oNewMonthElement);
            oXmlDocument.Save(????);
        }

        //OutputStream of the xml document
        XmlReader oXmlReader = XmlReader.Create(???);
 

Я расшифровываю xml и создаю из него MemoryStream, затем добавляю к нему некоторые данные.
Теперь, как я могу сохранить эти данные в динамическом XML-документе, который я создал, и как читать из него?

Редактировать: я загружаю XML-документ из MemoryStream, я хочу сохранить документ в том же MemoryStream. После этого я хочу его прочитать.

Комментарии:

1. Извините, но ваш вопрос не имеет для меня смысла… Можете ли вы предоставить больше информации о том, что вы пытаетесь сделать?

2. Где вы хотите сохранить XML? Вы хотите сохранить это в файл? В поток памяти? В зашифрованный файл?

3. Извините за поздний ответ, я загружаю xml из потока памяти и хочу сохранить его в том же потоке памяти. после этого я хочу прочитать из этого потока памяти. Чего я не могу понять, так это как сохранить изменения в том же потоке memroy с момента XmlDoucment. Save() сохраняет путь на HD.

4. Чтобы сохранить в поток памяти, создайте XmlWriter в потоке памяти и вызовите XmlDocument.WriteTo .

Ответ №1:

Вы можете попробовать десериализовать свой xml в класс, внести свои изменения в этот класс, а затем выполнить сериализацию обратно.