2017-04-21 9 views
1

私はプログラムを実行するたびに、xmlファイルは元のコードを置き換えるのではなく、単に別の部分を追加するだけです。 は、ここに私のファイルですC#でxmlファイルの値を変更する方法は?

XML:

<?xml version="1.0" encoding="utf-8" ?> 
<stuff>stuff</stuff> 

のC#:

static void Main(string[] args) 
    { 
     XmlDocument doc = new XmlDocument(); 
     FileStream f = new FileStream(@"C:\ file path", FileMode.Open); 
     doc.Load(f); 
     doc.SelectSingleNode("stuff").InnerText = "hi"; 
     doc.Save(f); 
    } 

結果のXML:

<?xml version="1.0" encoding="utf-8" ?> 
<stuff>stuff</stuff><?xml version="1.0" encoding="utf-8"?> 
<stuff>hi</stuff> 

答えて

1

私はなぜこれが起こっているか分からないが、私はそれを考えますストリームに物をロードし、それを同じストリームにもっと割り当てることと関係しています。

たぶん、あなたは(作品)の簡単な方法を実行する必要があります。

static void Main(string[] args) 
    { 
     XmlDocument doc = new XmlDocument(); 
     doc.Load(@"C:\Temp\Test.xml"); 
     doc.SelectSingleNode("stuff").InnerText = "hi"; 
     doc.Save(@"C:\Temp\Test.xml"); 
    } 
+0

ありがとうございます。私は今この問題の解決策を探しています。 –

0

あなたが探しているものを達成するファイル名をとりSaveためのオーバーロード。既存のファイルを上書きします。

 XmlDocument doc = new XmlDocument(); 
     FileStream f = new FileStream(@"C:\file.xml", FileMode.Open); 
     doc.Load(f); 
     f.Close(); 
     doc.SelectSingleNode("stuff").InnerText = "hi"; 
     doc.Save(@"C:\file.xml"); 
+0

同じ回答が既にDesertFoxによって追加されています – Sanjid

関連する問題