2011-09-05 161 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

我看到這個錯誤... –