Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

XML Data management in .NET

Tags:

c#

.net

xml

c#-4.0

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.

like image 482
Leany Avatar asked Oct 19 '25 05:10

Leany


1 Answers

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.

like image 142
alex Avatar answered Oct 21 '25 20:10

alex



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!