如何一个XmlDocument转换成数组 ?(How to convert an XmlDoc

2019-07-20 07:54发布

我构建了一个XmlDocument的 ,现在我想将它转化成一个阵列。 如何才能做到这一点?

谢谢,

Answer 1:

尝试以下方法:

using System.Text;
using System.Xml;

XmlDocument dom = GetDocument()
byte[] bytes = Encoding.Default.GetBytes(dom.OuterXml);

如果您想保留文档的文本编码,然后更改Default编码所需的编码,或按照乔恩斯基特的建议 。



Answer 2:

写入到一个MemoryStream ,然后调用ToArray流上:

using System;
using System.IO;
using System.Text;
using System.Xml;

class Test
{
    static void Main(string[] args)
    {
        XmlDocument doc = new XmlDocument();
        XmlElement root = doc.CreateElement("root");
        XmlElement element = doc.CreateElement("child");
        root.AppendChild(element);
        doc.AppendChild(root);

        MemoryStream ms = new MemoryStream();
        doc.Save(ms);
        byte[] bytes = ms.ToArray();
        Console.WriteLine(Encoding.UTF8.GetString(bytes));
    }
}

在过去的格式更多的控制,你可以创建一个XmlWriter从流和使用XmlDocument.WriteTo(writer)



Answer 3:

史蒂夫圭迪 :谢谢! 您的代码是正确的金钱! 以下是我解决我的特殊字符问题:

    public static byte[] ConvertToBytes(XmlDocument doc)
    {
        Encoding encoding = Encoding.UTF8;
        byte[] docAsBytes = encoding.GetBytes(doc.OuterXml);
        return docAsBytes;
    } 


文章来源: How to convert an XmlDocument to an array?