Добавить информацию в XML-файл в C # - PullRequest
2 голосов
/ 05 сентября 2011

Скажем, у меня есть XML-документ, который выглядит следующим образом:

 <BOOK>
  <NAME>Home</NAME>
  <ISBN>0-943396-04-2</ISBN>
  <PRICE>$0.82</PRICE>
 </BOOK>

И у меня есть программа, цель которой - позволить пользователю добавить еще одну книгу в список ... какой код я бы добавил к кнопке, которую я назвал «Добавить книгу», чтобы она добавила еще один набор информации?

Таким образом, конечный продукт будет выглядеть так:

 <BOOK>
  <NAME>Home</NAME>
  <ISBN>0-943396-04-2</ISBN>
  <PRICE>$0.82</PRICE>
 </BOOK>
 <BOOK>
  <NAME>Work</NAME>
  <ISBN>0-85131-041-9</ISBN>
  <PRICE>$0.99</PRICE>
 </BOOK>

Я использую Microsoft Visual C # 2010 Express, если это поможет.

1 Ответ

2 голосов
/ 05 сентября 2011

во-первых, вам нужно поместить контейнер в список ваших книг, чтобы

<BOOKS>
<BOOK>
  <NAME>Home</NAME>
  <ISBN>0-943396-04-2</ISBN>
  <PRICE>$0.82</PRICE>
 </BOOK>
</BOOKS>

Затем вам нужно было проанализировать его с чем-то, храните ли вы его в файле?если это так, то

XElement.Load(filename);

в противном случае вы можете разобрать строку

XElement el = XElement.Parse(@"<BOOKS><BOOK>
  <NAME>Home</NAME>
  <ISBN>0-943396-04-2</ISBN>
  <PRICE>$0.82</PRICE>
 </BOOK></BOOKS>");

, затем создать и добавить новую книгу

var newBook = new XElement("BOOK", new[]
{ 
    new XElement("NAME", "thename"), 
    new XElement("ISBN", "isbn"), 
    new XElement("PRICE", ".71") 
});
el.Add(newBook);

и сохранить ее, если вам нужно

el.Save(filename)

Переформатированный комментарий ниже;

var el = XElement.Load("Ops.xml");
var newOp = new XElement("Operation", new[] {
    new XElement("Operation Name", textBox2.Text), 
    new XElement("Operation Date", dateTimePicker1.Value)
});
el.Add(newOp);
...