繁体   English   中英

C#XMLdocument再次写相同的东西

[英]C# XMLdocument writing same thing over again

在我的应用程序中,会生成大量数据,然后使用XmlDocument将其写入XML文件。 机制工作正常,但是当我调用一次又一次序列化的函数以将数据写入新XML时,它将先前写入的内容复制到新XML以及新数据中!

我不明白,我在序列化函数的开头调用XmlDocument doc = new XmlDocument()。

        private static Boolean SaveParsedDataAsXML(ParsedData DataParsed, String Name)
        {
            try
            {
                XmlDocument doc = new XmlDocument();

                XmlNode xmlnode = doc.CreateNode(XmlNodeType.XmlDeclaration, "", "");
                doc.AppendChild(xmlnode);

                XmlElement generalVariables = doc.CreateElement("Variables");

                generalVariables.AppendChild(SerializeElement(doc, "Path", DataParsed.Path));
. 
.
.
            XmlElement chatMessages = doc.CreateElement("ChatMessages");
            foreach (Message mess in DataParsed.ChatMessages)
            {
                XmlElement singleMess = doc.CreateElement("SingleMessage");

                singleMess.AppendChild(SerializeElement(doc, "MessageID", mess.MessageID.ToString()));
                singleMess.AppendChild(SerializeElement(doc, "MessageName", mess.MessageName));
                singleMess.AppendChild(SerializeElement(doc, "MessageTime", mess.MessageTime.ToString()));
                singleMess.AppendChild(SerializeElement(doc, "MessageContent", mess.MessageContent));
                singleMess.AppendChild(SerializeElement(doc, "MessageTarget", mess.MessageTarget.ToString()));

                chatMessages.AppendChild(singleMess);
            }


           generalVariables.AppendChild(chatMessages);
.
.
.
                doc.AppendChild(generalVariables);

                //Saving and returning true, serialization successful.
                doc.Save(OutputPath + "\\" + ReplayName + ".xml");               

                return true;
            }
            catch
            {
                return false;
            }
        }

我的假设是,在将DataParsed.ChatMessages对象传递到所发布的函数之前,不会清除该对象。

您确定每次都使用新的DataParsed对象吗? 还是您正在重复使用同一实例并向其添加更多消息?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM