我正在使用XMLWriter
创建一个基本的XML,XML文件有一个元素,所有内容都在,为了解释它可以说这只是people
然后内部需要要成为其中的多个元素,让我们调用它们person
然后在它们内部我们有称为names
的元素。
所以它看起来像这样
<?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();
任何阻止覆盖的方法?
答案 0 :(得分: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);
答案 1 :(得分:1)
L.B提供的答案是我个人使用的。关于xml编写器,我不确定这是否可行,但值得一试。尝试以追加模式创建文件流。
Stream xmlFile = new FileStream(@"c:\path",FileMode.Append);
XmlTextWriter xmlWriter = new XmlTextWriter(xmlFile, Encoding.Default);