2016-09-15 8 views
-1

この小さなxmlサンプルファイルを更新せずに更新しようとしました。 私に何のエラーも与えていませんが、ファイルは変更されません。 アイデアC#で既存のXMLファイルを更新する

おかげ

XMLサンプル:

<test> 
    <user>John Doe</user> 
    <user>Jane Doe</user> 
</test> 

C#コード

XmlDocument doc = new XmlDocument(); 
    doc.Load("../../../test.xml"); 

    XmlNode sNode = doc.SelectSingleNode("/test/user"); 
    XmlAttribute users = sNode.Attributes["user"]; 

    if (users != null) 
    {    
      string currentValue = users.Value;    
      if (string.IsNullOrEmpty(currentValue)) 
      { 
      users.Value = "Thomas"; 
      } 
    } 
    doc.Save("../../../test1.xml"); 
+0

'sNode.Attributes [" usあなたのXMLにはユーザー属性が含まれていません – DanielS

答えて

1

これは私がノード内の値を変更する方法である:

 XmlNode node= _doc.SelectSingleNode("test/user[1]"); // [index of user node] 
     node.InnerText = value; 
     _doc.Save(@"path"); 
0

あなたのユーザノードのdoesn XMLに属性がありませんファイル:

のでusersがここにnullである:!

XmlAttribute users = sNode.Attributes["user"]; 

SNODE場合は、テストする必要があります= nullを

if (sNode != null){ 
    .... 
} 
+0

ありがとうございました、私は気付きましたが、そこに属性はありませんが、Timon Postの解決策は私が探していたものでした。 – Thomas

0

これは完全に機能するようになりました:

XmlDocument doc = new XmlDocument(); 
doc.Load("../../../test.xml"); 

XmlNode node = doc.SelectSingleNode("test/user[1]"); // [index of user node] 
node.InnerText = "thomas"; 

doc.Save("../../../test1.xml"); 

はあなた

ありがとう
関連する問題