У меня есть xml, что я получаю как массив байтов, что лучший способ получить из него строку xml? Я пытался использовать xmltextreader и memystream, но без успеха.
С# создать xml из массива байтов
Ответ 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.