Sai A Sai A
Updated date May 16, 2023
In this blog, we will learn to convert XML to strings in C# using various methods such as XElement.ToString(), XmlTextWriter class, XmlSerializer class, and XmlDocument class.
  • 6.6k
  • 0
  • 0

Introduction:

XML (Extensible Markup Language) is a popular data format used to store and exchange data over the web. It is used to store and transfer data in a structured format. In this blog, we will learn how to convert XML to strings in C# using various methods. We will go through each method with a detailed explanation, code snippets, and output.

Method 1: Using the XElement.ToString() method

The easiest way to convert an XML document to a string in C# is by using the XElement.ToString() method. This method returns the XML document as a string.

Here's the sample code to convert XML to a string using this method:

XElement xml = XElement.Parse("<person><name>John</name><age>30</age></person>");
string str = xml.ToString();
Console.WriteLine(str);

Output:

<person>
  <name>John</name>
  <age>30</age>
</person>

In this method, we first create an instance of the XElement class and pass the XML string to it. Then we call the ToString() method on the XElement object, which returns the XML document as a string. Finally, we print the string to the console.

Method 2: Using the XmlTextWriter class

The XmlTextWriter class can also be used to convert an XML document to a string. This class provides a WriteToString() method that writes the XML document to a StringWriter object and returns the string representation of it.

Here's the sample code to convert XML to a string using the XmlTextWriter class:

XmlDocument doc = new XmlDocument();
doc.LoadXml("<person><name>John</name><age>30</age></person>");

using (StringWriter sw = new StringWriter())
{
    using (XmlTextWriter writer = new XmlTextWriter(sw))
    {
        writer.Formatting = Formatting.Indented;
        doc.WriteTo(writer);
        string str = sw.ToString();
        Console.WriteLine(str);
    }
}

Output:

<person>
  <name>John</name>
  <age>30</age>
</person>

In this method, we first create an instance of the XmlDocument class and load the XML string into it. Then we create a StringWriter object and pass it to an instance of the XmlTextWriter class. We set the Formatting property of the XmlTextWriter to "Indented" to make the XML document readable. Then we call the WriteTo() method of the XmlDocument object to write the XML document to the XmlTextWriter. Finally, we call the ToString() method on the StringWriter object to get the string representation of the XML document.

Method 3: Using the XmlSerializer class

The XmlSerializer class can also be used to convert an object to an XML document, and then convert the XML document to a string. This class provides a Serialize() method that serializes an object into an XML document, and a StringWriter class to convert the XML document to a string.

Here's the sample code to convert XML to a string using the XmlSerializer class:

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

Person p = new Person { Name = "John", Age = 30 };
XmlSerializer serializer = new XmlSerializer(typeof(Person));
StringWriter sw = new StringWriter();
serializer.Serialize(sw, p);
string str = sw.ToString();
Console.WriteLine(str);

Output:

<?xml version="1.0" encoding="utf-16"?>
<Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Name>John</Name>
  <Age>30</Age>
</Person>

In this method, we first create a Person object and set its properties. Then we create an instance of the XmlSerializer class and pass the type of the object to it. We create a StringWriter object and pass it to the Serialize() method of the XmlSerializer object along with the Person object. Finally, we call the ToString() method on the StringWriter object to get the string representation of the XML document.

Method 4: Using the XmlDocument class

The XmlDocument class provides an OuterXml property that can be used to get the XML document as a string. This property returns the XML document including the declaration.

Here's the sample code to convert XML to a string using the XmlDocument class:

XmlDocument doc = new XmlDocument();
doc.LoadXml("<person><name>John</name><age>30</age></person>");
string str = doc.OuterXml;
Console.WriteLine(str);

Output:

<?xml version="1.0" encoding="utf-8"?>
<person><name>John</name><age>30</age></person>

In this method, we first create an instance of the XmlDocument class and load the XML string into it. Then we call the OuterXml property of the XmlDocument object to get the XML document as a string, including the declaration.

Conclusion:

In this blog, we have learned how to convert XML to strings in C# using various methods. We have covered the XElement.ToString() method, XmlTextWriter class, XmlSerializer class, and XmlDocument class. Each method has its own advantages and disadvantages, and the choice of method depends on the specific use case. By understanding these methods, you can easily convert XML to strings in your C# projects.

Comments (0)

There are no comments. Be the first to comment!!!