Pregunta

he visto varios puestos aquí en la SO acerca de la carga de documentos XML a partir de una fuente de datos donde los datos tiene patentada UTF-8 preámbulo de Microsoft (por ejemplo, éste ).
Sin embargo, no puedo encontrar un elegante (y trabajando!) Solución que no implique la creación de bandas a los personajes de lista de materiales manualmente.

Por ejemplo, no es este ejemplo :

byte[] b = System.IO.File.ReadAllBytes("c:\\temp_file_containing_bom.txt");
using (System.IO.MemoryStream oByteStream = new System.IO.MemoryStream(b)) {
    using (System.Xml.XmlTextReader oRD = new System.Xml.XmlTextReader(oByteStream)) {
        System.Xml.XmlDocument oDoc = new System.Xml.XmlDocument();
        oDoc.Load(oRD);
        Console.WriteLine(oDoc.OuterXml);
        Console.ReadLine();
    }
}

... pero aún sigue echando "datos no válidos" excepción.

Mi problema es que tengo una enorme matriz de bytes que a veces contiene la lista de materiales y algunas veces no lo hace. Es necesario cargar en XMLDocument. Y no creo que yo soy el que tiene que cuidar de los bytes "ayudantes".

¿Fue útil?

Solución

Esa lista de materiales ya no es 'propiedad'. Está escrito en las especificaciones XML. Sólo versión antigua de Java (1.4) tiene un problema con él. Es bastante gracioso si usted tiene la tecnología EM explosión.

Usar un flujo de entrada en el buffer para filtrar la lista de materiales empujando hacia atrás el primer carácter si no es el primer carácter de la secuencia de la lista de materiales.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top