XMLDocument - > Byte[] ... как вернуться к XMLDocument?

У меня есть XmlDocument и получить байты объекта следующим образом:

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

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

и данные хранятся в базе данных.

теперь я читаю данные byte[] обратно и хочу вернуться к объекту XmlDocument. Как я могу это сделать, так как я не могу просто записать байт[] в XmlDocument?

спасибо.

1 ответов


можно использовать LoadXml способ:

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

обновление:

как запрошено в разделе комментариев Вот как загрузить массив байтов в 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);
}