2011-04-05 3 views
0

내 응용 프로그램에서는 많은 양의 데이터가 생성되고 XmlDocument를 사용하여 XML 파일로 작성됩니다. 메 커닉은 잘 작동하지만 새로운 XML로 데이터를 쓰는 기능을 몇 번이고 다시 직렬화하는 함수를 호출하면 이전에 새 XML에 새 데이터를 더한 내용을 복사합니다!C# XMLdocument 다시 똑같이 쓰는 것

내가, 내가하는 XmlDocument 문서 직렬화 함수의 beggining에서 = 새로운 된 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; 
      } 
     } 

답변

0

내 가정은 당신을 삭제하지 않을 것을 것 DataParsed.ChatMessages 개체를 게시 한 함수로 전달하기 전에 개체.

매번 새로운 DataParsed 개체를 사용 하시겠습니까? 또는 동일한 인스턴스를 다시 사용하고 더 많은 메시지를 추가하고 있습니까?

+0

예, ParsedData dataParsed = new ParsedData(); dataParsed = parserApe.ParseReplay (replayFilePath); –

+0

ParsedData의 새 인스턴스를 만들지 않은 데이터를 구문 분석하는 내부 함수였습니다. –

관련 문제