我构建了一个XmlDocument的 ,现在我想将它转化成一个阵列。 如何才能做到这一点?
谢谢,
我构建了一个XmlDocument的 ,现在我想将它转化成一个阵列。 如何才能做到这一点?
谢谢,
尝试以下方法:
using System.Text;
using System.Xml;
XmlDocument dom = GetDocument()
byte[] bytes = Encoding.Default.GetBytes(dom.OuterXml);
如果您想保留文档的文本编码,然后更改Default
编码所需的编码,或按照乔恩斯基特的建议 。
写入到一个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)
。
史蒂夫圭迪 :谢谢! 您的代码是正确的金钱! 以下是我解决我的特殊字符问题:
public static byte[] ConvertToBytes(XmlDocument doc)
{
Encoding encoding = Encoding.UTF8;
byte[] docAsBytes = encoding.GetBytes(doc.OuterXml);
return docAsBytes;
}