0

我正在使用 aXMLWriter创建一个基本的 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();

有什么办法可以阻止它覆盖?

4

2 回答 2

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);
于 2012-11-26T20:53:16.900 回答
1

LB提供的答案是我个人使用的。关于 xml 编写器,我不确定这是否可行,但值得一试。尝试以附加模式创建文件流。

Stream xmlFile = new FileStream(@"c:\path",FileMode.Append);
XmlTextWriter xmlWriter = new XmlTextWriter(xmlFile, Encoding.Default);
于 2012-11-27T04:38:08.423 回答