Problemas Identar XML[RESOLVIDO]

2 respostas
M
Bomd ia Galera! Estou encontrando dificuldades para identar meu xml. Tenho um código que faz isso, mas coloca uma tag embaixo da outra e eu preciso que seja algo mais específico.Se alguém puder me ajudar..Obrigada!!! Ex:Hoje o código faz isso
<?xml version='1.0' encoding='ISO-8859-1'?>
<BSAUTO>
<RETORNO>
<HEADER>
<![CDATA[3901C5]]>
</HEADER>
<TELA01>
<![CDATA[310000 ]]>
</TELA01>
<TELA02>
<![CDATA[002DAS AMERICAS]]>
</TELA02>

Mas eu preciso que seja assim:

<?xml version='1.0' encoding='ISO-8859-1'?>
<BSAUTO>
<RETORNO>
<HEADER><![CDATA[3901C5]]>
</HEADER>
<TELA01><![CDATA[310000 ]]>
</TELA01>
<TELA02><![CDATA[002DAS AMERICAS]]>
</TELA02>
meu Código:
public static String identar(String codigo){

        StringBuffer buffer = new StringBuffer();
        char c = '\0';

        for (int i = 0; i < codigo.length(); i++){
            c = codigo.charAt(i);
            buffer.append(c);
            if (c == '>'){
                buffer.append("\n" + "");
            }
            if(c == '<'){

                buffer.trimToSize();
            }
            
        }
        return buffer.toString();
    }

2 Respostas

S

Oi, se for especifico, acho que o codigo abaixo resolve.

public class IdentaXML {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
	String codigo = 	"<?xml version='1.0' encoding='ISO-8859-1'?>"+
		"<BSAUTO>"+
		"<RETORNO>"+
		"<HEADER>"+
		"<![CDATA[3901C5]]>"+
		"</HEADER>"+
		"<TELA01>"+
		"<![CDATA[310000 ]]>"+
		"</TELA01>"+
		"<TELA02>"+
		"<![CDATA[002DAS AMERICAS]]>"+
		"</TELA02>";
		System.out.println(identar(codigo));
	}
	
	
	public static String identar(String codigo){

        StringBuffer buffer = new StringBuffer();
        char c = '\0';
        
        for (int i = 0; i < codigo.length(); i++){
            c = codigo.charAt(i);
            
            buffer.append(c);
            if (c == '>'){
            	if(i+2 < codigo.length() && codigo.charAt(i+2) !='!' ){
            		buffer.append("\n" + "");
            	}
            }
            if(c == '<'){

                buffer.trimToSize();
            }
            
        }
        return buffer.toString();
    }

}
M

Muito obrigada pela ajuda, era exatamente isso!!! :slight_smile:
Obrigada…bjs

Criado 5 de maio de 2010
Ultima resposta 5 de mai. de 2010
Respostas 2
Participantes 2