Android recibe texto de html

Recibo un código html especial:

& Lt; p & gt; Esto es & lt; a href = & quot; http: //www.test.hu & gt; un enlace de prueba & lt; / a & gt; Y esto es & amp; nbsp; un ejemplo de texto con carácter especial: & amp; # 233; va & lt; / p & gt;

(No hay espacio antes; char, pero si no inserto espacio en el formato stackoverflow)

No es un código html normalmente, pero si pego en una página html vacía, el navegador lo muestra con etiquetas normales:

< P > Esto es <a href = "http://www.test.hu"> un enlace de prueba < / a > y este es un ejemplo de texto con carácter especial: éva < / p >

Este código se mostrará en un navegador:

Este es un enlace de prueba Y este es un ejemplo de texto con caracteres especiales: éva

Así que quiero obtener este texto, pero no puedo usar Html.fromHtml , porque el componente que utilizo no es compatible con Spanned . Quería probar StringEscapeUtils , pero no podía importarlo.

¿Cómo puedo reemplazar caracteres especiales y quitar etiquetas?

Escribir un analizador, no es diferente de lo que sería en cualquier otra situación en la que tiene que analizar los datos.

Ahora, si usted puede conseguirlo como HTML ordinario unescaped, hay una variedad de analizadores del HTML de Java del código abierto hacia fuera allí que usted puede utilizar. Si va a trabajar con el HTML escapado como lo ha hecho en su primer ejemplo, tendrá que escribir el analizador usted mismo.

Supongo que soy demasiado tarde para responder a la pregunta de Robertoq, pero estoy seguro de que muchos otros chicos siguen luchando con este tema, yo era uno de ellos.

De todos modos, la forma más fácil que encontré es la siguiente: En strings.xml , agregue su código html dentro de CDATA , y luego en la actividad recuperar la cadena y cargarla en WebView , aquí está el ejemplo:

En strings.xml:

 <string name="st1"><![CDATA[<p>This is <a href="http://www.test.hu">a test link</a> and this is a sample text with special char: éva </p>]]> </string> 

Puede que desee reemplazar é con & eacute; (Nota: no hay espacio entre & eacute y el ; )

Ahora, en su actividad, cree WebView y cargue la cadena st1 en ella:

 WebView mWebview = (WebView)findViewById(R.id.*WebViewControlID*); mWebview.loadDataWithBaseURL(null, getString(R.string.st1), "text/html", "utf-8", null); 

Y horraaa, debe funcionar correctamente. Si encuentras esta publicación útil, seré genial si puedes marcarlo como contestado, así que ayudamos a otros que luchan con este problema

  • El anuncio no aparece
  • Androide. ARTE para el error de optimización de bucle. Función java simple con resultado inesperado
  • Problemas con pruebas de instrumentos Espresso en los dispositivos de tiempo de ejecución de Dalvik
  • AUDIOFOCUS_LOSS llamó después de una llamada telefónica en android
  • Preguntas que cada desarrollador de Smartphone (Iphone, Android) debería ser capaz de responder?
  • Enviar un valor booleano a un PLC desde Android
  • Búsqueda / filtrado ListView por varios criterios
  • Cómo iniciar un IntentService de un WakefulBroadcastReceiver
  • Error: (124, 62) error: tipos incompatibles: La clase no se puede convertir en Contexto
  • Tools.jar no se encuentra OS X
  • Cómo conseguir que Powermock funcione con Dexmaker
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.