Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

XMLDocument -> Byte[] ... how to get back to XMLDocument?

I have an XmlDocument and get the bytes of the object as follows:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("C:\\myxml.xml");

byte[] data = Encoding.UTF8.GetBytes(xmlDocument.outerXml);

and data is stored in a database.

Now I am reading the byte[] data back out, and want to get back to the XmlDocument object. How can I do this, as I cannot simply case the byte[] to an XmlDocument?

Thanks.

like image 200
jkh Avatar asked Jul 07 '11 20:07

jkh


1 Answers

You could use the LoadXml method:

byte[] data = ... fetch from your db
string xml = Encoding.UTF8.GetString(data);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);
// TODO: do something with the resulting XmlDocument

UPDATE:

As requested in the comments section here's how to load the byte array into a DataTable:

byte[] data = ... fetch from your db
DataTable dt = ... fetch from somewhere or instantiate a new;
using (var stream = new MemoryStream(data))
{
    dt.ReadXml(stream);
}
like image 60
Darin Dimitrov Avatar answered Sep 22 '22 02:09

Darin Dimitrov