0

私はXMLWriter基本的なXMLを作成するためにを使用していますが、XMLファイルにはすべてが含まれる1つの要素があります。これを説明するために、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 に答える