XML Data management in .NET
I learning Xml data handling in .NET. I have the following XML format.
<BOOKS>
<BOOK>
<TITLE>book 1</TITLE>
<AUTHOR>author 1</AUTHOR>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</BOOK>
<BOOK>
<TITLE>book 2</TITLE>
<AUTHOR>author 2</AUTHOR>
<PRICE>20.90</PRICE>
<YEAR开发者_运维知识库>1995</YEAR>
</BOOK>
</BOOKS>
I need to learn to add/edit/delete new books to the XML file. Could you please guide me on what all classes to explore for these functionality. I find lot of classes like XmlDocument
XmlTextWriter
etc. Some sites suggest to use LINQ as well. I am confused as to which was to go. Is there any good material I can refer to understand this.
Here's an example of adding and removing elements using LINQ to XML:
// load the XML file into an XElement
XElement xml = XElement.Load(filePath);
// add a new book
xml.Add(
new XElement("BOOK",
new XElement("TITLE", "book 3"),
new XElement("AUTHOR", "author 3"),
new XElement("PRICE", 0.1),
new XElement("YEAR", 2012)));
// remove a book that matches the desired title
xml.Elements("BOOK").Where(x => x.Element("TITLE").Value == "book 1").Remove();
// to edit an existing element:
xml.Elements("BOOK")
.Single(x => x.Element("TITLE").Value == "book 2") // take a single book
.Element("AUTHOR").Value = "new author"; // and change its author field
Basically, use whatever you want, as long as you're comfortable with the technology. LINQ to SQL seems a bit easier, in my opinion.
If the file is reasonable small - i.e. not several MB in size - you should use either XmlDocument
(the classic way) or XDocument
(the new LINQ classes for XML processing). You will find lots of examples for both.
The following search results might give a hint as to when you should use which of those classes: http://www.google.com/search?hl=en&q=XmlDocument%20vs.%20XDocument. Personally, I would suggest using XDocument
, because its API is easier to use.
精彩评论