Analizando espermas inválidos con XmlPullParsers de Android

Estoy escribiendo una pequeña aplicación de raspado de pantalla que consume un poco de XHTML – no hace falta decir que el XHTML no es válido: los signos comerciales no se escapan como & .

Estoy utilizando XmlPullParser de Android y arroja el siguiente error sobre el valor incorrectamente codificado:

 org.xmlpull.v1.XmlPullParserException: unterminated entity ref (position:START_TAG <a href='/Fahrinfo/bin/query.bin/dox?ld=0.1&n=3&i=9c.0323581.1266265347&rt=0&vcra'> @55:134 in java.io.InputStreamReader@43b1ef70) 

¿Cómo puedo evitar esto? He pensado en las siguientes soluciones:

  1. Envolviendo el InputStream en otro que reemplaza los epspers con refs de entidad
  2. Configurando el Parser para que acepte mágicamente el marcado incorrecto

¿Cuáles son las que tienen más éxito?

2 Solutions collect form web for “Analizando espermas inválidos con XmlPullParsers de Android”

Yo iría con su primera opción, la sustitución de los ampersand parece más de una solución adecuada que la otra. La segunda opción parece más de un hack para conseguir que funcione aceptando marcado incorrecto.

Me quedé atrapado en esto durante aproximadamente una hora antes de averiguar que en mi caso fue el "&" que no pudo ser resuelto por el XML PULL PARSER, así que encontré la solución. Así que aquí hay un fragmento de código que lo arreglan totalmente.

 void ParsingActivity(String r) { try { parserCreator = XmlPullParserFactory.newInstance(); parser = parserCreator.newPullParser(); // Here we give our file object in the form of a stream to the // parser. parser.setInput(new StringReader(r.replaceAll("&", "&amp;"))); // as a SAX parser this will raise events/callback as and when it // comes to a element. int parserEvent = parser.getEventType(); // we go thru a loop of all elements in the xml till we have // reached END of document. while (parserEvent != XmlPullParser.END_DOCUMENT) { switch (parserEvent) { // if u have reached start of a tag case XmlPullParser.START_TAG: // get the name of the tag String tag = parser.getName(); 

Prácticamente lo que hago Estoy reemplazando el & con &amp; Ya que estaba tratando de analizar una URL. Espero que esto ayude.

  • FindViewById () devuelve null - intentado TODO
  • Problemas al analizar XML con XSL en él
  • SimpleXML, org.simpleframework.xml.core.PersistenceException
  • Error al intentar probar análisis XML con Robolectric
  • No se detectaron restricciones de gramática (DTD o esquema XML) para el documento (Android)
  • Obtener elementos por nombre de etiqueta de un nodo en documento de Android (XML)?
  • Fragmento Google Maps de Google Maps en el xml. Me sale "prefijo de espacio de nombres inesperado"
  • Consumir servicio REST Web y analizar datos XML en Android
  • android - string.xml error de análisis
  • Los datos Xml se convierten en datos Json en android
  • Analizar archivo xml utilizando java para - aplicación basada en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.