将数据保存到XML文件时出现问题 [英] Problem in saving data to an XML file
问题描述
我正在用C#编写程序,将一些数据保存到XML文件中。我有3个问题。
1.我正在尝试将我的帐户详细信息保存在XML文件中。我要保存的数据是帐户名,用户名,密码和附加信息(多行)。但我不知道如何正确地将数据安排到XML元素中。我需要一些帮助。
2.我使用下面的代码将数据保存到XML文件中。但是当我尝试保存另一条记录时,它会从XML文件中删除现有数据,然后添加新记录。所以现在我只有一个记录。我该如何解决?
private void button1_Click( object sender,EventArgs e)
{
if (Functions.SavetoXML(textBox1.Text,textBox2.Text,textBox3.Text,textBox4.Text)== true )
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true ;
XmlWriter writer = XmlWriter.Create( Passwords.rar,设置);
writer.WriteStartDocument();
writer.WriteComment( 此文件由PasswordSave生成。);
writer.WriteStartElement( Account);
writer.WriteElementString( 名称, + textBox1.Text);
writer.WriteElementString( 用户名, + textBox2.Text);
writer.WriteElementString( 密码, + textBox3.Text);
// writer.WriteStartElement(Additinal Info,+ textBox4.Text);
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
MessageBox.Show( 信息已保存!, 完成,MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
3.保存其他信息时,我必须在XML元素中保存多行信息,我该如何实现?
谢谢。
你可以用Write CDATA ....
writer.WriteElementString( AdditinalInfo);
// 写CDATA。
writer.WriteCData(< span class =code-string> 在这里写下你的多行文字);
根据以上描述,您似乎需要在XML文件中附加帐户详细信息,以便您可以按照您的工作方式执行此操作:
using System .Xml.Linq;
private void button1_Click(object sender,EventArgs e)
{
string _File =C:/Test.XML;
if(!File.Exists(_File))
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
XmlWriter writer = XmlWriter.Create(_File,settings);
writer.WriteStartDocument();
writer.WriteComment(此文件由PasswordSave生成。);
writer.WriteStartElement(Accounts);
writer.WriteStartElement(Account);
writer.WriteElementString(Name,+ textBox1.Text);
writer.WriteElementString(Username,+ textBox2.Text);
writer.WriteElementString(Password,+ textBox3.Text);
writer.WriteEndElement();
writer.WriteEndElement();
writer.Close();
}
else
{
帐户(_File,textBox1.Text,textBox2.Text,textBox3.Text);
}
}
public void帐户(字符串文件,字符串名称,字符串用户名,字符串密码)
{
XDocument doc = XDocument.Load(文件);
XElement xeName = new XElement(Account,new XElement(Name,name),new XElement(Username,Username),new XElement(Password,Password));
doc.Element(Accounts)。Add(xeName);
doc.Save(file);
}
我建议使用XmlDocument或XDocument类来创建XML而不是XmlWriter.It将简化您的XML工作:)
Hi, I'm coding a program in C# to save some data in to an XML file. I have 3 questions.
1. I'm trying to save my account details in the XML file. The data I want to save is, Account name, Username, Password and Additional info(multiple lines). But I don't know how to arrange the data correctly in to XML elements. I need some help with that.
2. I'm using below code to save data to the XML file. But when I try to save another record, it deletes the existing data from the XML file and then add the new record. So now I have only one record. How do I fix it?
private void button1_Click(object sender, EventArgs e)
{
if (Functions.SavetoXML(textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text) == true)
{
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
XmlWriter writer = XmlWriter.Create("Passwords.rar", settings);
writer.WriteStartDocument();
writer.WriteComment("This file is generated by PasswordSave.");
writer.WriteStartElement("Account");
writer.WriteElementString("Name", "" + textBox1.Text);
writer.WriteElementString("Username", "" + textBox2.Text);
writer.WriteElementString("Password", "" + textBox3.Text);
// writer.WriteStartElement("Additinal Info", "" + textBox4.Text);
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
MessageBox.Show("Information Saved!", "Done", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
3. When saving additional info, I have to save multiple lines of information in a XML element how can I achieve that?
Thanks.
You could use Write CDATA....
writer.WriteElementString("AdditinalInfo"); // Write CDATA. writer.WriteCData("write your multi-line text here");
As per above description it seems u need to append account details in XML file so You can do this in this way as per your work: using System.Xml.Linq; private void button1_Click(object sender, EventArgs e) { string _File="C:/Test.XML"; if (!File.Exists(_File)) { XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; XmlWriter writer = XmlWriter.Create(_File, settings); writer.WriteStartDocument(); writer.WriteComment("This file is generated by PasswordSave."); writer.WriteStartElement("Accounts"); writer.WriteStartElement("Account"); writer.WriteElementString("Name", "" + textBox1.Text); writer.WriteElementString("Username", "" + textBox2.Text); writer.WriteElementString("Password", "" + textBox3.Text); writer.WriteEndElement(); writer.WriteEndElement(); writer.Close(); } else { Account(_File, textBox1.Text,textBox2.Text,textBox3.Text); } } public void Account(string file,string name, string Username, string Password) { XDocument doc = XDocument.Load(file); XElement xeName = new XElement("Account", new XElement("Name", name), new XElement("Username", Username), new XElement("Password", Password)); doc.Element("Accounts").Add(xeName); doc.Save(file); }
I Suggest use XmlDocument or XDocument classes to create XML as well instead of XmlWriter.It will ease your XML working.:)
这篇关于将数据保存到XML文件时出现问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!