通过文本框添加内容

时间:2009-08-27 11:32:49

标签: c# .net winforms

我有一个Windows窗体应用程序,其中包含一个文本框(tbox)和两个按钮:保存(b1)和删除(b2)和一个XML文件leaf.xml

每当我在文本框中放置任何内容然后单击保存(b1)时,文本框中的内容将保存在leaf.xml文件中。当我按删除(b2)时,它将从文件leaf.xml中删除,同时它将禁用保存按钮。

这是xml文件无论添加什么都会标记,假设我们添加测试它会 来吧

<Name>test</Name>

3 个答案:

答案 0 :(得分:4)

您可能想查看XMLSerializer。它允许您将“ObjectClass”序列化/反序列化为流。同样,您可能希望查看File类,以打开文件流(传入XMLSerializer)并删除文件(File.Delete)。

答案 1 :(得分:0)

使用LINQ执行此操作....请参阅以下代码:

XDocument xmlDoc = XDocument.Load(Server.MapPath("People.xml"));

xmlDoc.Element("Persons").Add(new XElement("Person", new XElement("Name", txtName.Text),
new XElement("City", txtCity.Text), new XElement("Age", txtAge.Text)));

xmlDoc.Save(Server.MapPath("People.xml"));
lblStatus.Text = "Data successfully added to XML file.";

答案 2 :(得分:-1)

保存应该是这样的,删除适用于XPath(找到包含提供文本的Name元素,然后删除它,再次保存文件。)

如果任何具有相同名称的人在课程之外输入,这将无效。

Save_Click(object sender, EventArgs e)
{
  FileStream fs = new FileStream("leaf.xml",FileMode.Open,FileAccess.Read, FileShare.ReadWrite);
  XmlDocument doc = new XmlDocument();
  doc.Load(fs);
  XmlElement elem = doc.CreateElement("","Name","");
  XmlText text = doc.CreateTextNode(textbox1.Text);
  elem.AppendChild(text);
  doc.RootNode.AppendChild(elem);

  doc.Save("leaf.xml");
}