Xdocument in c# with example

Xdocument in c# with example
In this article [Show more]

    Working with XDocument in C#

    The XDocument class in C# is part of the System.Xml.Linq namespace and is designed to simplify the process of working with XML data. It allows you to load, manipulate, and save XML documents dynamically with ease.

    Introduction to XDocument

    XDocument represents an XML document and provides functionality for creating, loading, and saving XML structured data. It is an in-memory XML document object that provides a simple and efficient way to work with XML.

    Example: Creating and Manipulating an XML Document

    Creating an XML Document

    Here's an example of creating an XML document from scratch using XDocument:

     

    using System;
    using System.Xml.Linq;
    
    public class Program
    {
        public static void Main()
        {
            XDocument xmlDoc = new XDocument(
                new XElement("Books",
                    new XElement("Book",
                        new XElement("Title", "Introduction to C#"),
                        new XElement("Author", "John Doe"),
                        new XElement("Year", 2021)
                    ),
                    new XElement("Book",
                        new XElement("Title", "Advanced C# Programming"),
                        new XElement("Author", "Jane Smith"),
                        new XElement("Year", 2023)
                    )
                )
            );
    
            Console.WriteLine(xmlDoc.ToString());
            // Save the document
            xmlDoc.Save("Books.xml");
        }
    }
    

    Loading an XML Document

    To load an XML document from a file:

     

    XDocument loadedDoc = XDocument.Load("Books.xml");
    Console.WriteLine(loadedDoc);
    

    Manipulating XML

    You can also add, modify, and remove elements:

     

    XDocument doc = XDocument.Load("Books.xml");
    
    // Adding a new book
    doc.Element("Books").Add(
        new XElement("Book",
            new XElement("Title", "Learning LINQ"),
            new XElement("Author", "Mark Spencer"),
            new XElement("Year", 2024)
        )
    );
    
    // Modifying an existing book's title
    var book = doc.Descendants("Book").First();
    book.Element("Title").Value = "Introduction to C# Revised";
    
    // Removing a book
    var lastBook = doc.Descendants("Book").Last();
    lastBook.Remove();
    
    // Display the modified document
    Console.WriteLine(doc);
    
    // Save changes
    doc.Save("UpdatedBooks.xml");
    

    Best Practices

    • Handle Exceptions: Always handle potential exceptions that may occur during XML operations, such as file access errors or malformed XML content.
    • Use LINQ to XML: Utilize the powerful LINQ to XML capabilities for querying and transforming XML documents.
    • Validate XML: Always validate XML against a schema if the format is crucial to ensure the XML data's integrity and correctness.

    Conclusion

    XDocument offers a powerful, flexible way to work with XML in C#. Whether you are creating, querying, or modifying XML documents, XDocument provides the necessary tools to get the job done effectively.

    Author Information
    • Author: Ehsan Babaei

    Send Comment



    Comments