2016-09-15 55 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 [「我們呃「]'你的xml不包含用戶屬性 – DanielS

回答

1

這是我改變了節點內的值:

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

您的用戶沒有按節點在XML中沒有任何屬性文件:

所以users在這裏空:

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"); 

謝謝