2012-09-21 99 views
1

我創建一個樣本登錄表單在Windows窗體應用程序&我想救我的登錄用戶名或密碼的XML文件,但是當我提交的用戶名或密碼,它取代了以前的條目。如何防止在XML文件替換以前的數據

我想要的是,當我提交的用戶名或密碼,它應該被追加到同一個XML文件,但不替代任何以前項目。

像:

<Table> 
    <Entry> 
    <User>[email protected]</User> 
    <Password>*********</Password> 
    </Entry> 
</Table> 

<Table> 
    <Entry> 
    <User>[email protected]</User> 
    <Password>*********</Password> 
    </Entry> 
</Table> 

但它的每一次更換第一enty,而不是讓對第二個條目的空間

請給我這個

該解決方案是我的代碼:

private void button1_Click(object sender, EventArgs e) 
{ 
XmlTextWriter writer = new XmlTextWriter("entry.xml", System.Text.Encoding.UTF8); 
     writer.WriteStartDocument(true); 
     writer.Formatting = Formatting.Indented; 
     writer.Indentation = 2; 
     writer.WriteStartElement("Table"); 
     createNode(textBox1.Text, textBox2.Text, writer); 
     writer.WriteEndElement(); 
     writer.WriteEndDocument(); 
     writer.Close(); 
     MessageBox.Show("XML File created ! "); 

}

private void createNode(string pName, string pPass, XmlTextWriter writer) 
{ 
    writer.WriteStartElement("Entry"); 
    writer.WriteStartElement("User"); 
    writer.WriteString(pName); 
    writer.WriteEndElement(); 
    writer.WriteStartElement("Password"); 
    writer.WriteString(pPass); 
    writer.WriteEndElement(); 
    writer.WriteEndElement(); 
} 

回答

0

使用LINQ到XML。它更靈活:

private void AddEntry(XElement xml, string user, string password) 
{ 
    xml.Add(new XElement("Entry", 
         new XElement("User", user), 
         new XElement("Password", password))); 
} 

然後

XElement x = XElement.Load("In.xml"); 
AddEntry(x, "newuser", "newpassword"); 
x.Save("In.xml"); 

所以,如果你的文件是:使用UR我的代碼

<?xml version="1.0" encoding="utf-8"?> 
<Table> 
    <Entry> 
    <User>[email protected]</User> 
    <Password>*********</Password> 
    </Entry> 
    <Entry> 
    <User>newuser</User> 
    <Password>newpassword</Password> 
    </Entry> 
</Table> 
+0

<Table> <Entry> <User>[email protected]</User> <Password>*********</Password> </Entry> </Table> 

你得到一個輸出正在此錯誤 「的類型或命名空間名稱的XElement'找不到(是否缺少using指令或程序集引用?)」 –

+0

@ user1687470添加以下內容:使用System.Xml.Linq的;.您的項目必須至少在.Net3.5上 – horgh

相關問題