XMLDocument -> Byte [] ... как вернуться к XMLDocument? - PullRequest
6 голосов
/ 08 июля 2011

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

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

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

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

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

Спасибо.

1 Ответ

10 голосов
/ 08 июля 2011

Вы можете использовать метод 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

UPDATE:

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