Search code examples
c#serializationxml-serialization

Cannot convert XElement to XObject


I am trying to serialize an XML file using the following code:

XmlDocument xDoc = new XmlDocument();
xDoc.Load(@"D:\myfile.xml");
string jsonStr = JsonConvert.SerializeXNode(xDoc);

but it's not working and I am getting following error on 3rd line

Cannot convert XmlDocument into XObject

I also tried to find the first node and then try to pass it but its also not working.


Solution

  • You're using XmlDocument, which is from the "old" XML API. Json.NET uses the "new" XML API of LINQ to XML. You just need to change how you're loading the XML:

    XDocument xml = XDocument.Load(@"D:\myfile.xml");
    string json = JsonConvert.SerializeXNode(xml);