Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

XML document cannot contain multiple root level elements

Tags:

c#

xml

I have a list of codes to which i have an error "XML document cannot contain multiple root level elements"

<Employee>
  <Name ID= "JanRich">Janice Richardson</Name>
  <Role>Finance Supervisor</Role>
  <Department>Sales</Department>
  <CPF_Number>370-16-3631</CPF_Number>
  <Marital_Status>Single</Marital_Status>
  <Salary>$4,500</Salary>
</Employee>
<Employee>
  <Name ID= 'AlanWu'>Alan Wu</Name>
  <Role></Role>
  <Department>Research</Department>
  <CPF_Number>
    385-22-3311
  </CPF_Number>
  <Marital_status>Married</Marital_status>
  <Salary>$52,800</Salary>
</Employee>

The error occurs at the first <Employee> tag.

like image 983
GJJ Avatar asked Nov 17 '11 04:11

GJJ


2 Answers

The XML document must have one and only one root element. You have to add root element. For instance,

<?xml version="1.0" encoding="utf-8" ?> 
<Employees>
    <Employee>
       .....
    </Employee>
    <Employee>
       ....
    </Employee>
</Employees>
like image 78
KV Prajapati Avatar answered Nov 08 '22 12:11

KV Prajapati


Assuming what you want to do is open the document anyway, you can set the ConformanceLevel of the XmlReader to ConformanceLevel.Fragment.

XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;

// input is a stream or filename
using (XmlReader reader = XmlReader.Create(input, settings)) {
    // use the reader
}
like image 31
harpo Avatar answered Nov 08 '22 11:11

harpo