2012-07-06 2 views
0

XML 파일이 있습니다. 업데이트 (일부 노드 추가)하고 싶습니다. 여기 코드가 모습입니다 :LINQ to XML - XML ​​파일로 노드 업데이트 및 저장

var xmlDocuments = XDocument.Load(filePath); 
var documentElementToEdit = xmlDocuments.Element("Container").Element("Documents").Elements("Document").Where(x => x.Element("GUID").Value == GUID).FirstOrDefault(); 
missingIndexData1 = new XElement("IndexData"); 
XElement indexData1 = new XElement("Name", "somename"); 
XElement indexData2 = new XElement("Value", somevalue); 
XElement indexData3 = new XElement("DataType", "3"); 
XElement indexData4 = new XElement("CreationTime", DateTime.Now.ToString("O")); 
XElement indexData5 = new XElement("CreationTimeUTC", DateTime.UtcNow.ToString("O")); 
missingIndexData1.Add(indexData1); 
missingIndexData1.Add(indexData2); 
missingIndexData1.Add(indexData3); 
missingIndexData1.Add(indexData4); 
missingIndexData1.Add(indexData5); 
documentElementToEdit.Element("IndexDatas").Add(missingIndexData1); 
documentElementToEdit.Save(filePath); 

는 이것이하는 일은 단지이 문서 노드와 원래의 XML 파일을 overwrittes 것입니다. 원본 파일에서 문서 노드를 업데이트하려면 어떻게해야합니까?

+0

'xmlDocuments.Save (filePath);'를 마지막 줄로 사용해 보셨습니까? –

+0

siiiiiiiiiiiiiigh :) – no9

답변

3

원래의 XML 파일을이 문서 노드로 덮어 씁니다. 어떻게하면 원래 파일의 문서 노드를 업데이트 할 수 있습니까?

변경된 요소 대신 문서 전체를 저장해야합니다. 물론 전체 파일을 다시 작성하지만, 간단한 방법은 없습니다.

xmlDocuments.Save(filePath); 
+0

그래 꽤 분명 .. 한숨. 고맙습니다. – no9