2012-07-20 56 views
12

Estoy usando Java y estoy tratando de obtener un documento XML desde algún enlace http. Código que estoy usando es:Error fatal: 1: 1: El contenido no está permitido en el prólogo

URL url = new URL(link); 

HttpURLConnection connection = (HttpURLConnection)url.openConnection(); 
connection.setRequestMethod("GET"); 
connection.connect(); 
Document doc = null; 

CountInputStream in = new CountInputStream(url.openStream()); 
doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(in); 

no se presta atención a CountInputStream, que es alguna clase que actúa especial como flujo de entrada regular.

Utilizando el código anterior, a veces recibí el error Fatal Error :1:1: Content is not allowed in prolog. Supongo que tiene algo que ver con el mal formato de xml, pero no tengo idea de cómo solucionarlo.

+1

posible duplicado de [Java analizar documentos XML da "contenido no permitido en el prólogo." error] (http://stackoverflow.com/questions/2599919/java-parsing-xml-document-gives-content-not-allowed-in-prolog-error) –

+0

Bueno, como he entendido el hilo al que se refiere, se trata de leyendo xml del disco. En mi caso, no tengo xml en el disco, solo tengo una cadena (enlace) y obtuve un error antes de obtener el archivo xml ... – guest86

+0

¿Puedes dar la URL en cuestión? La causa más probable de esto es una respuesta mal formada, así que echar un vistazo a eso sería valioso. – MvG

Respuesta

18

Estoy respondiendo a mi comentario, por lo que puede ser aceptado y esta pregunta ya no queda sin respuesta.

La causa más probable de esto es una respuesta mal formada, que incluye caracteres antes del <?xml …> inicial. Por lo tanto, eche un vistazo al documento transferido a través de HTTP y solucione esto en el lado del servidor.

+0

Estos caracteres extraños al inicio del archivo son BOM (marca de orden de bytes), idealmente la lista de materiales no debería estar presente con codificación utf-8 ya que java no analiza tal excepción y da el error anterior – techExplorer

6

Ciertamente hay algunos caracteres extraños (por ejemplo, BOM) o algunos espacios en blanco antes del preámbulo XML (<?xml ...?>)?

+1

En mi caso, he agregado comentarios incorrectamente en xml usando los comentarios del estilo de Java . p.ej. En lugar de usar , utilicé/* */eliminación que solucionó lo mismo – Chaitanya

0

Alguien debería marcar el comentario de Johannes Weiß como la respuesta a esta pregunta. Es exactamente por eso que los documentos xml no pueden simplemente cargarse en una clase de documentos DOM.

http://en.wikipedia.org/wiki/Byte_order_mark

Cuestiones relacionadas