es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo eliminar etiquetas HTML al recibir una respuesta utilizando HttpURLConnection y la biblioteca org.json en Java?

Estoy utilizando el siguiente código para recuperar información del API:

HttpURLConnection connection;

reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));

while ((line = reader.readLine()) != null) {
        responseContent.append(line);
}
reader.close();

Luego convierto la respuesta a string:

String responseBody = responseContent.toString();

Después utilizo la librería org.json para parsear la información:

JSONObject ob = new JSONObject(responseBody);
JSONArray Information = ob.getJSONArray("info");

for (int i = 0; i < Information.length(); i++) {
    JSONObject data= Information.getJSONObject(i);

    String dataName= data.getString("data_name");
}

Como resultado obtengo algunos textos con etiquetas html cuando imprimo los valores de dataName, por ejemplo:

content name<sup></sup>
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    La presencia de etiquetas HTML en los valores de dataName sugiere que la API está devolviendo los datos en formato HTML. Para eliminar las etiquetas HTML y obtener solo el contenido de texto, se puede utilizar una biblioteca como Jsoup para analizar y limpiar el HTML. Aquí te mostramos cómo puedes modificar tu código para utilizar Jsoup:

    1. Agrega la biblioteca Jsoup a tu proyecto. Puedes descargarla desde la página web de Jsoup, o añadirla como dependencia si estás utilizando una herramienta de construcción como Maven o Gradle.
    2. Usa Jsoup para analizar y limpiar el HTML:

    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    
    ...
    
    String dataName = data.getString("data_name");
    String cleanText = Jsoup.parse(dataName).text();
    

    El método Jsoup.parse(dataName) crea un objeto Document a partir de la cadena HTML, y el método .text() devuelve el contenido de texto sin etiquetas HTML.

    1. Utiliza la variable cleanText en tu código en lugar de dataName para obtener el contenido de texto limpio.
    for (int i = 0; i < Information.length(); i++) {
        JSONObject data = Information.getJSONObject(i);
        String dataName = data.getString("data_name");
        String cleanText = Jsoup.parse(dataName).text();
        System.out.println(cleanText);
    }
    

Comments are closed.