如何将XmlDocument转换为数组?

我构建了一个XmlDocument ,现在我想将它转换为数组。 如何才能做到这一点?

谢谢,

请尝试以下方法:

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

如果要保留文档的文本编码,请将Default编码更改为所需的编码,或遵循Jon Skeet的建议 。

将它写入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)

Steve Guidi :谢谢! 你的代码是对的钱! 这是我解决我的特殊字符问题的方法:

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