tengo xml lo que obtengo como byte array, ¿cuál es la mejor manera de sacarle la cadena xml? Estaba tryng utilizar XmlTextReader y MemoryStream pero sin éxito ..C# create xml from byte array
Respuesta
XmlDocument doc = new XmlDocument();
string xml = Encoding.UTF8.GetString(buffer);
doc.LoadXml(xml);
O
XmlDocument doc = new XmlDocument();
MemoryStream ms = new MemoryStream(buffer);
doc.Load(ms);
Este assum es que sus datos tienen codificación UTF8, que es la habitual para XML. También buffer
aquí está la matriz de bytes.
¡Buena respuesta, aunque el MemoryStream es IDisposable, así que no olvide envolverlo en un bloque de uso! :) – firefox1986
@ firefox1986 no es necesario. http://stackoverflow.com/a/234257/440502 – Aliostad
debido a una marca de orden de bytes (BOM) Encontré esta sobrecarga más útil (gracias a Jon Skeet) 'MemoryStream ms = new MemoryStream (buffer, true);' – bkwdesign
Sobre la base de la codificación, puede hacerlo
string xmlString = System.Text.UTF8Encoding.UTF8.GetString(bytes);
y utilizar la cadena
XmlTextReader reader = new XmlTextReader(new StringReader(xmlString));
Usa la clase UTF8, no ASCII ... – NKCSS
Ooops ... GetBytes toma una cadena y da una matriz de bytes. GetString toma una matriz de bytes y da una cadena. FTFY. –
Echa un vistazo a la clase System.Text.Encoding.UTF8. Debería permitirle convertir su matriz de bytes en una cadena UTF8.
What si no es UTF8? –
Consulte la página [Valores predeterminados de codificación XML] (http://www.opentag.com/xfaq_enc.htm) aquí. UTF8 es la suposición correcta en la mayoría de los casos. – NKCSS
Aún así, creo que debería tener una nota al respecto en su respuesta. –
Suponiendo que su xml está en la codificación predeterminada 'UTF8', podría hacer algo como esto;
string xml = System.Text.UTF8Encoding.UTF8.GetString(bytes);
System.Xml.XmlDocument xdoc = new System.Xml.XmlDocument().LoadXml(xml);
O esto;
XmlDocument doc = new XmlDocument();
using (MemoryStream ms = new MemoryStream(buffer))
{
doc.Load(ms);
}
- 1. CGImage from byte array
- 2. create xml from object
- 3. C# create simple xml file
- 4. byte-array como bitfield en C#?
- 5. Byte Array a NSData
- 6. Tokenize byte array
- 7. Byte Array en Python
- 8. Byte array serialización en JSON.NET
- 9. Scala: InputStream to Array [Byte]
- 10. impulsar gzip descomprimir byte array
- 11. Objeto Byte Array to Image
- 12. Join Array from startIndex to endIndex
- 13. create std :: string from char * de forma segura
- 14. Comparación de archivos mediante Byte Array issues
- 15. Ruby regex matching strings from a array?
- 16. pyopengl buffer dynamic read from numpy array
- 17. Parse xml from httppost response
- 18. array [byte] a HBITMAP o CBitmap
- 19. Java Iterate Bits en Byte Array
- 20. Conversión de Java Byte Array Problema
- 21. protobuf-net OverwriteList en Byte Array
- 22. Fácil sintaxis 'create table from view' en mysql?
- 23. C++ create an parser
- 24. C# create report programmatically
- 25. C - initialize array of structs
- 26. C: sobrescribir otro byte función a byte
- 27. C# callback from DLL
- 28. C# create thead y tbody
- 29. ¿Cómo convertir una cadena simple a Byte Array en VBA?
- 30. Diferencia entre ByteArray y Array <Byte> en kotlin
¿De dónde obtienes la matriz de bytes? ¿Conoces la codificación utilizada? –
XML contiene datos codificados en base64 .. – hs2d
Quise decir la [codificación de caracteres] (http://en.wikipedia.org/wiki/Character_encoding) del documento XML. –