2012-11-26 2 views
0

기본 XML을 만들기 위해 XMLWriter을 사용하고 있습니다. XML 파일에는 모든 것을 포함하는 요소가 하나 있는데, 설명하기 위해 people이라고 말하면됩니다. 그 안의 여러 요소들은 person이라고 부를 수 있고 그 안에는 names이라는 요소가 있습니다. 그것은이여러 개의 XML 요소가 서로 덮어 씁니다.

<?xml version="1.0" encoding="utf-8"?> 
<people> 
    <person> 
    <name>Name1</name> 
    </person> 
    <person> 
    <name>Name2</name> 
    </person> 
    <person> 
    <name>Name3</name> 
    </person> 
</people> 

하지만 새로운 person를 작성 갈 때 그냥 이런 식으로 나올 것 같을 것이다 그래서

(그 그냥 덮어 쓰기) : 내가 사용하고

<?xml version="1.0" encoding="utf-8"?> 
<people> 
    <person> 
    <name>Name5</name> 
    </person> 
</people> 

이 각을 작성하는 person ...

writer.WriteStartElement("person"); 
writer.WriteElementString(keys[i], values[i]); 
writer.WriteEndElement(); 

아무튼 그것을 덮어 쓰지 않으려면?

답변

2

당신이 LinqToXml

var xDoc = XDocument.Load(fileName); 

var people = xDoc.Element("people"); 
people.Add(new XElement("person", new XElement("name", "name4"))); 

xDoc.Save(fileName, SaveOptions.None); 
+0

XML 작성기로 수행 할 수있는 방법이 있습니까? – FabianCook

+0

아니면 이것이 최선의 방법이라고 생각합니까? – FabianCook

+0

@SmartLemon Best? * 최선을 정의하기 어렵다. 더 쉬워? 예. –

1

L.B 제공하는 대답을 시도 할 경우 내가 개인적으로 사용하는 것 인 것이다. XML 작성자에 관해서는, 이것이 작동 할 지 확신 할 수는 없지만, 그럴 가치는 있습니다. 추가 모드에서 파일 스트림을 생성 해보십시오.

Stream xmlFile = new FileStream(@"c:\path",FileMode.Append); 
XmlTextWriter xmlWriter = new XmlTextWriter(xmlFile, Encoding.Default); 
관련 문제