C#从字节数组创建XML

c# create xml from byte array

我有xml,我将其作为字节数组获取,从中获取xml字符串的最佳方法是什么? 我试图使用xmltextreader和memorystream,但没有成功。


1
2
3
XmlDocument doc = new XmlDocument();
string xml = Encoding.UTF8.GetString(buffer);
doc.LoadXml(xml);

要么

1
2
3
XmlDocument doc = new XmlDocument();
MemoryStream ms = new MemoryStream(buffer);
doc.Load(ms);

这假定您的数据具有UTF8编码,这对于XML是常见的。 另外,这里的buffer是字节数组。


假设您的xml使用默认的" UTF8"编码,则可以执行以下操作;

1
2
string xml = System.Text.UTF8Encoding.UTF8.GetString(bytes);
System.Xml.XmlDocument xdoc = new System.Xml.XmlDocument().LoadXml(xml);

或这个;

1
2
3
4
5
XmlDocument doc = new XmlDocument();
using (MemoryStream ms = new MemoryStream(buffer))
{
    doc.Load(ms);
}


根据编码,您可以

1
string xmlString = System.Text.UTF8Encoding.UTF8.GetString(bytes);

并使用字符串

1
XmlTextReader reader = new XmlTextReader(new StringReader(xmlString));


看一下System.Text.Encoding.UTF8类。 它应该让您将字节数组转换为UTF8字符串。