Reputation: 379
I got problems in using XDocument.Load because sometimes there is no error and sometimes there is already error, same error "root element is missing" I already tried using seek and position still the same error occurs.
Any ideas how can I fix this issue? Thanks
Here is my source code so far:
using (var stream = File.Open(file, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
stream.Seek(0, System.IO.SeekOrigin.Begin);
//stream.Position = 0;
var request = XDocument.Load(stream);
var get_command = from r in request.Descendants("Transaction")
select new
{
Type = r.Element("Type").Value
};
foreach (var c in get_command)
{
type = c.Type;
}
}
Sample XML
<?xml version="1.0" encoding="utf-8"?>
<Request>
<Transaction>
<Type>gc</Type>
</Transaction>
</Request>
Upvotes: 1
Views: 5894
Reputation: 4607
My guess would be your sample is over simplified and your Xml looks more like this
<?xml version="1.0" encoding="utf-8"?>
<Request>
<Transaction>
<Type>gc</Type>
</Transaction>
</Request>
<Request>
<Transaction>
<Type>gc</Type>
</Transaction>
</Request>
That would explain your error as there is no root element. You need to make it like this
<?xml version="1.0" encoding="utf-8"?>
<Requests>
<Request>
<Transaction>
<Type>gc</Type>
</Transaction>
</Request>
<Request>
<Transaction>
<Type>gc</Type>
</Transaction>
</Request>
</Requests>
Upvotes: 2