2011-09-05 123 views
2

说我有一个XML文件,看起来像这样:信息添加到XML文件在C#

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

而且我有了允许用户另一本书添加到列表的目的的程序.. 。我将什么代码放在按钮上,标题为“Add 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中,有没有什么帮助。

回答

2

首先你会需要把容器周围的书籍列表中,这样

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

那么,在“名称”是我可以把textbox1.Text? –

+0

是把你的变量放到XElement构造函数的第二个参数中。 – kmcc049

+0

我看到这个错误... –