代码之家  ›  专栏  ›  技术社区  ›  Newbie

如何将XML文档转换为数组?

  •  24
  • Newbie  · 技术社区  · 16 年前

    我构造了一个 XmlDocument 现在我想把它转换成一个数组。怎么能做到?

    谢谢,

    3 回复  |  直到 12 年前
        1
  •  42
  •   Community Mohan Dere    9 年前

    尝试以下操作:

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

    如果要保留文档的文本编码,请更改 Default 编码到所需的编码,或遵循 Jon Skeet's suggestion .

        2
  •  28
  •   Jon Skeet    16 年前

    把它写成 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) .

        3
  •  0
  •   Community Mohan Dere    9 年前

    Steve Guidi 谢谢!你的密码是正确的!以下是我如何解决我的特殊角色问题:

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