¿Por qué este código sigue activando la SaxParseException: "" PI no debe comenzar con xml "?

Este código se utiliza para generar un documento XML desde su representación String. Funciona bien en mis pruebas de unidad pequeña, pero falla en mis datos XML reales. La línea donde se desencadena es Document doc = db.parse(is);

¿Algunas ideas?

 public static Document FromString(String xml) { // from http://www.rgagnon.com/javadetails/java-0573.html try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); InputSource is = new InputSource(); is.setCharacterStream(new StringReader(xml)); Document doc = db.parse(is); doc.normalize(); return doc; } catch (Exception e) { Log.WriteError("Failed to parse XML", e, "XML.FromString(String)"); return null; } } 

Gracias por su ayuda a todos.

He descartado la <?xml version="1.0" encoding="utf-8"?> Que borró este error. Todavía no entiendo cuál podría ser la razón de esto, pero funcionó sin embargo.

Fui a encontrar uno de mis escritores almacenados en búfer (al extraer de un archivo de cierre relámpago en memoria) no estaba siendo enjuagado, que hacía que la cadena del xml fuera incompleta.

¡Gracias a todos por su ayuda!

Puede comprobar si su archivo xml tiene el encabezado de la lista de materiales

Tuve el mismo problema al analizar XML generado por PHP. Después de agregar la cabecera ContentType "text / xml" funciona como un encanto.

Como @StaxMan dijo, eliminar cualquier personaje desconocido antes

ResponseBody = responseBody.substring (responseBody.indexOf ("<"));

Este problema será causado también por tener la línea <? Xml version = "1.0" encoding = "UTF-8"?> Junto con los datos xml en la misma línea …

<? Xml version = "1.0" encoding = "UTF-8"?> <Secciones> <seccion> <id> 0 </ id> <nombre> Portada <feedURL> http://iphone.elnorte.com/libre/ Online07 / a ….

Debería haber comprobado la codificación del archivo en lugar de descartar la línea xml.

He encontrado que mi Eclipse (en Windows) tenía el mismo problema con un recurso codificado como Unix-U8. Después de convertirlo a DOS-U8, el error se fue.

  • Selector desplegable con la misma imagen pero diferente opacidad
  • Añadiendo el hilador a ActionBar (no Navegación
  • Android: El elemento de nivel superior no se completa en AndroidManifest.xml
  • Desplazamiento y desaparición de líneas de código; Problemas con el Editor XML de Eclipse
  • Este campo de texto no especifica un inputType o una pista
  • Escapar de soportes de ángulo en XML en Eclipse / Android
  • Formato AndroidManifest.xml de Eclipse
  • Cambiar el radio de la esquina de programación programable
  • Swich imágenes de fondo se extiende al personalizar en android
  • Las sugerencias de auto de EditText están en blanco o no existen
  • Aplicación para Android que muestra diferentes diseños a la vez con hdmi
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.