XMLDocument -> Byte[] ... 如何将其转换回XMLDocument?

6
我有一个XmlDocument对象,以下是获取该对象字节的方法:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("C:\\myxml.xml");

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

数据存储在数据库中。

现在我想从byte[]数据中读取,并希望恢复到XmlDocument对象。由于无法将byte[]强制转换为XmlDocument,因此我该如何做呢?

谢谢。

1个回答

10

你可以使用 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);
}

如果我想将这个XML读入DataTable中...它不允许使用dataTable.ReadXml(xmlDoc),因为它需要一个流或文件名...我该如何将这个XML读入数据表? - jkh
@John,我已经更新了我的答案,以便说明这种情况。 - Darin Dimitrov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接