2009-08-27 10 views
-1

У меня есть приложение, которое содержит текстовое поле (tbox) и две кнопки под управлением Windows Forms: Save (b1) и Delete (b2) и файл XML leaf.xmlдобавить содержимое через текстовые поля

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

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

<Name>test</Name>

+3

что ваш вопрос? – rahul

+0

В чем Ваш вопрос? – Bhaskar

+0

Я не мог придумать ответ, не зная структуру Xml, вы хотите добавить к нему узлы, переписать весь файл и т. Д. И т. Д. И т. Д. И т. Д. – Colin

ответ

4

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

-1

спасбросков должно быть что-то вроде этого, Удалять работы с XPath (найти имя элемента, который имеет прилагаемый текст в нем, а затем удалить его, сохраните файл снова.)

Это не будет работать, если какой-либо люди с таким же именем вводятся с курсом ...

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"); 
} 
+0

Извините ... Никто не должен использовать XmlDocument для этого типа работы, если они не работают с устаревшим кодом. Существует так много других способов сделать это, и XmlDocument является худшим по многим причинам. По крайней мере, используйте XDocument вместо XmlDocument ... –

+0

Согласен, это то, что я записал, чтобы указать OP в направлении. Он явно новичок в этом ... – Colin

+0

Я получаю эту ошибку «System.Xml.XmlDocument» не содержит определения для «RootNode» – peter

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."; 
Смежные вопросы