#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 в класс, внести свои изменения в этот класс, а затем выполнить сериализацию обратно.