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.

  • Problemas al analizar XML con XSL en él
  • Android ICS SOAP método no funciona?
  • NetworkOnMainThread
  • Que es mejor en términos de análisis de rendimiento en Android, XML o JSON?
  • Lectura de un archivo .xml desde sdcard
  • Diferencia entre setContentView y LayoutInflater
  • Obtener la lista de valores utilizando dom parser en android
  • Android cómo identificar audio / video de xml?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.