Retirar enter de um arquivo XML [RESOLVIDO]

Bom dia pessoal. :smiley:

Tenho um XML de retorno da SEFAZ-PE. Entretanto, tive uma solicitação para retirar todos os Enter’s do arquivo, deixando este em apenas 1 linha.

Alguém sabe, ou tem algum artigo que fala sobre este assunto? Desculpa a ignorância, mas nunca pensei em tratar este tipo de problema num arquivo XML…hehe

Segue o XML, para facilitar: XD

<retEnvEvento xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.00"> <idLote>000000000015255</idLote> <tpAmb>2</tpAmb> <verAplic>NFEPE_H_02.01.01.011</verAplic> <cOrgao>26</cOrgao> <cStat>128</cStat> <xMotivo>Lote de Evento Processado</xMotivo> <retEvento versao="1.00"> <infEvento> <tpAmb>2</tpAmb> <verAplic>NFEPE_H_02.01.01.011</verAplic> <cOrgao>26</cOrgao> <cStat>213</cStat> <xMotivo>Rejeição: CNPJ do Emitente não confere com CNPJ do Certificado Digital</xMotivo> <chNFe>35110310290739000139550010000000011051128041</chNFe> <tpEvento>110110</tpEvento> <nSeqEvento>8</nSeqEvento> <dhRegEvento>2012-06-28T17:09:03-03:00</dhRegEvento> </infEvento> </retEvento></retEnvEvento>

Obrigado desde já :smiley:

Ola, faça a leitura do arquivo para uma string, de um replace de “\n” por “” e salve o novo texto no arquivo!

Valeu pela dica, chieck! :smiley:

Fiz um main básico aqui pra testar.

package enter;

import java.io.*;

public class Enter {

    public static void main(String[] args) throws FileNotFoundException, IOException {
        
        String linha = "";
	StringBuilder xml = new StringBuilder();

	BufferedReader in = new BufferedReader(new InputStreamReader(
                new FileInputStream("D:\\param.xml")));
	while ((linha = in.readLine()) != null) 
        {
            xml.append(linha);
	} 
    }
}

nunca utilizei a função, se possivel, peço uma dica de onde inserir o replace. Utilizei uma StringBuilder, não sei se interfere em alguma coisa.

Obrigado! :smiley:

Quando tiver a linha, e antes de dar o append.

Obrigado, digaoneves :smiley:

Uma sugestão também é você usar a propriedade file separator do System. Porque dependendo do sistema operacional, o caractere de quebra de linha é diferente, e usando a propriedade, ele vai trazer o correto pra você. Aí ao invés de String quebra = "\\n"; linha = linha.replaceAll(quebra, ""); você faz String quebra = System.getProperty("line.separator"); linha = linha.replaceAll(quebra, "");

[quote=digaoneves]Uma sugestão também é você usar a propriedade file separator do System. Porque dependendo do sistema operacional, o caractere de quebra de linha é diferente, e usando a propriedade, ele vai trazer o correto pra você. Aí ao invés de String quebra = "\\n"; linha = linha.replaceAll(quebra, ""); você faz String quebra = System.getProperty("line.separator"); linha = linha.replaceAll(quebra, "");[/quote]

Valeu pela dica :smiley: