c # создать XML из байтового массива - PullRequest
25 голосов
/ 07 апреля 2011

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

Ответы [ 4 ]

51 голосов
/ 07 апреля 2011
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 здесь - байтовый массив.

4 голосов
/ 07 апреля 2011

Предполагая, что ваш 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);
}
2 голосов
/ 07 апреля 2011

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

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

и использовать строку

XmlTextReader reader = new XmlTextReader(new StringReader(xmlString));
0 голосов
/ 07 апреля 2011

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

...