2017-10-13 78 views
0

我是C#的新手,目前正试图使用​​Windows窗体创建一个简单的登录屏幕。该程序将输入表单并将用户名和密码保存到XML文件中。我只是想知道如何保存一个以上的用户,而不是保存新用户时覆盖以前的用户数据。这是我目前使用的代码。如何将多个用户添加到xml文件

{ 
     XmlTextWriter write = new XmlTextWriter("XML.xml", Encoding.UTF8); 
     write.WriteStartElement("USER"); 
     write.WriteStartElement("username"); 
     write.WriteString(textBox1.Text); 
     write.WriteEndElement(); 
     write.WriteStartElement("passsword"); 
     write.WriteString(textBox2.Text); 
     write.WriteEndElement(); 
     write.WriteEndElement(); 
     write.Close(); 
    } 
+1

你将不得不'Load'了'XML.xml'没有创造的'XmlTextWriter' – 12seconds

+1

一个新的实例本打算成为一个现实世界的应用程序?你永远不应该以这样的明文保存用户密码。他们应该是单向散列和腌制。 – mason

回答

0

试试这个:

XmlDocument xmlDoc = new XmlDocument(); 
     string filePath = Path.Combine(@"C:\assets\" + "users.xml"); 
     XmlNode usersNode; 

     if (File.Exists(filePath)) 
     { 
      xmlDoc.Load(filePath); 
      usersNode = xmlDoc.SelectSingleNode(@"Users"); 
     } 
     else 
     { 
      usersNode = xmlDoc.CreateElement("Users"); 
      xmlDoc.AppendChild(usersNode); 
     } 

     XmlElement user = xmlDoc.CreateElement("User"); 
     XmlElement userName = xmlDoc.CreateElement("UserName"); 
     XmlElement pass = xmlDoc.CreateElement("Pass"); 

     userName.InnerText = "TestUser"; 
     pass.InnerText = "TemPass"; 

     user.AppendChild(userName); 
     user.AppendChild(pass); 
     usersNode.AppendChild(user); 

     xmlDoc.Save(filePath);