добавить содержимое через текстовые поля - PullRequest
0 голосов
/ 27 августа 2009

У меня есть приложение Windows Forms, которое содержит текстовое поле (tbox) и две кнопки: Сохранить (b1) и Удалить (b2) и файл XML leaf.xml

Всякий раз, когда я помещаю что-либо в текстовое поле и затем нажимаю Сохранить (b1), содержимое в текстовом поле будет сохранено в файле leaf.xml. Когда я нажимаю «удалить» (b2), он удаляет из файла leaf.xml и одновременно отключает кнопку «Сохранить».

это XML-файл, который добавится к тегу, если мы добавим тест, прийти как

<Name>test</Name>

Ответы [ 3 ]

4 голосов
/ 27 августа 2009

Возможно, вы захотите взглянуть на XMLSerializer . Это позволит вам сериализовать / десериализовать ваш "ObjectClass" в / из потока. Аналогично, вы, вероятно, захотите взглянуть на класс File для открытия потоков файлов (для передачи в XMLSerializer) и удаления файлов (File.Delete).

0 голосов
/ 27 августа 2009

Для этого используйте 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.";
0 голосов
/ 27 августа 2009

Сохранение должно быть примерно таким: удаление работает с 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");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...