Saltar al contenido

Eliminar espacios en blanco y saltos de línea de XML en Java

Ya no tienes que indagar más por todo internet porque has llegado al sitio indicado, tenemos la solución que quieres y sin problemas.

Solución:

Solución de trabajo siguiendo las instrucciones en los comentarios de la pregunta de @Luiggi Mendoza.

public static String trim(String input) 
    BufferedReader reader = new BufferedReader(new StringReader(input));
    StringBuffer result = new StringBuffer();
    try 
        String line;
        while ( (line = reader.readLine() ) != null)
            result.append(line.trim());
        return result.toString();
     catch (IOException e) 
        throw new RuntimeException(e);
    

recorrer recursivamente el documento. elimine cualquier nodo de texto con contenido en blanco. recorte cualquier nodo de texto con contenido que no esté en blanco.

public static void trimWhitespace(Node node)

    NodeList children = node.getChildNodes();
    for(int i = 0; i < children.getLength(); ++i) 
        Node child = children.item(i);
        if(child.getNodeType() == Node.TEXT_NODE) 
            child.setTextContent(child.getTextContent().trim());
        
        trimWhitespace(child);
    

Como se documenta en una respuesta a otra pregunta, la función relevante sería DocumentBuilderFactory.setIgnoringElementContentWhitespace(), pero, como ya se señaló aquí, esa función requiere el uso de un analizador de validación, que requiere un esquema XML, o algo similar.

Por lo tanto, su mejor opción es iterar a través del documento que obtiene del analizador y eliminar todos los nodos de tipo TEXT_NODE (o aquellos TEXT_NODE que contienen solo espacios en blanco).

Comentarios y calificaciones

Recuerda que tienes concesión de interpretar si descubriste tu traba justo a tiempo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *