Подтвердить что ты не робот

С# создать xml из массива байтов

У меня есть xml, что я получаю как массив байтов, что лучший способ получить из него строку xml? Я пытался использовать xmltextreader и memystream, но без успеха.

4b9b3361

Ответ 1

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

ИЛИ

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

Это предполагает, что ваши данные имеют кодировку UTF8, которая является обычной для XML. Также buffer здесь находится массив байтов.

Ответ 2

Предполагая, что ваш xml находится в кодировке UTF8 по умолчанию, вы можете сделать что-то вроде этого:

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

Или это;

XmlDocument doc = new XmlDocument();
using (MemoryStream ms = new MemoryStream(buffer))
{
    doc.Load(ms);
}

Ответ 3

На основе кодировки вы можете сделать

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

и используйте строку

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

Ответ 4

Взгляните на класс System.Text.Encoding.UTF8. Он должен позволить вам преобразовать массив байтов в строку UTF8.