This operation would create an incorrectly structured document

Vivekh picture Vivekh · Dec 29, 2012 · Viewed 13.3k times · Source

I am new to XML and tried the following but I'm getting an exception. Can someone help me?

The exception is This operation would create an incorrectly structured document

My code:

string strPath = Server.MapPath("sample.xml");
XDocument doc;
if (!System.IO.File.Exists(strPath))
{
    doc = new XDocument(
        new XElement("Employees",
            new XElement("Employee",
                new XAttribute("id", 1),
                    new XElement("EmpName", "XYZ"))),
        new XElement("Departments",
            new XElement("Department",
                new XAttribute("id", 1),
                    new XElement("DeptName", "CS"))));

    doc.Save(strPath);
}

Answer

Sergey Berezovskiy picture Sergey Berezovskiy · Dec 29, 2012

Xml document must have only one root element. But you are trying to add both Departments and Employees nodes at root level. Add some root node to fix this:

doc = new XDocument(
    new XElement("RootName",
        new XElement("Employees",
            new XElement("Employee",
                new XAttribute("id", 1),
                new XElement("EmpName", "XYZ"))),

        new XElement("Departments",
                new XElement("Department",
                    new XAttribute("id", 1),
                    new XElement("DeptName", "CS"))))
                );