【问题标题】:XMLDocument -> Byte[] ... how to get back to XMLDocument?XMLDocument -> Byte[] ... 如何返回 XMLDocument?
【发布时间】:2011-09-30 18:52:01
【问题描述】:

我有一个 XmlDocument 并获取对象的字节如下:

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

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

数据存储在数据库中。

现在我正在读取 byte[] 数据,并希望返回 XmlDocument 对象。我该怎么做,因为我不能简单地将 byte[] 转换为 XmlDocument?

谢谢。

【问题讨论】:

    标签: c# encoding bytearray type-conversion 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
    

    更新:

    根据 cmets 部分的要求,这里是如何将字节数组加载到 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 读入数据表?
    • @John,为了说明这种情况,我更新了我的答案。
    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    • 2015-06-07
    • 1970-01-01
    • 2017-05-01
    • 2023-04-04
    相关资源
    最近更新 更多