Problemas ao manipular Strings retornadas do xml

9 respostas
R

Boa tarde a todos

Estou com um problema para manipular Strings quê retornam de um arquivo xml , o que acontece é quê ao retornar um campo do xml e passa -lo a uma variável de tipo String os espaços em branco da frase são truncados, gostaria de pedir a ajuda dos colegas deste forum , e desde já agradeço

um forte abraço

9 Respostas

mmaico

Posta seu xml para vermos o que pode estar acontecendo.

abraço!

R
</Modelo.CorDisponivel>



1587.0

<ID__Carro>45</ID__Carro>



<Modelo.Imagens>



Celta LS 1.0 Prata Switchblade.gif

</Modelo.Imagens>



2016



<Modelo.Acessorio>

58

ArCondicionado  < -------  Veja o quê ocorre as palavras ficam aglutinadas , pior quando preciso passa um endereço de diretório para setar uma imagem[color=red] [/color]

123.0

</Modelo.Acessorio>

<Modelo.Acessorio>

9

canaleta

2.0

</Modelo.Acessorio>



</Modelo.Veiculos>
mmaico

Pelo que entendi no xml a palavra esta assim “Ar condicionado”, porem quando vc lê e adiciona a uma String ela aparece como “ArCondicionado”?

Qual o código que você esta usando para fazer a leitura disso?

R

public static String lexmlVeiculos() {
try {

Scanner in = new Scanner(new File(xmlVeiculos));

        StringBuilder sb = new StringBuilder();
        while (in.hasNext()) {
            sb.append(in.next());


        }
        in.close();
        return sb.toString();

    } catch (Exception e) {

        System.out.println("Erro ao ler o xml numero: " + e);


    }

    return " ";





}

Este é o método quê eu estou usando para ler o xml , e através do método fromXML da classe XStream eu transformo tudo em objeto novamente

String s = auxilioDao.lexmlVeiculos();

lcar = (List<Veiculos>) xs.fromXML(s);
mmaico

Para resolver o seu problema altere a linha que vc esta fazendo a leitura do arquivo, para a seguinte:

Scanner in = new Scanner(new File(xmlVeiculos)).useDelimiter("\A");

abraço!

R

Muito obrigado !! resolveu o problema , agora você será incluído nas minhas orações diárias , Deus te abençoe

mmaico

Denadaaaa, valeuus!!! :slight_smile:

regis_hideki

Acredito que trocar

while (in.hasNext()) { 
sb.append(in.next()); 
}

por

while (in.hasNextLine()) { 
sb.append(in.nextLine()); 
}

também funcione… o que acontece, é que o método next() pega a próxima palavra (e usa o caractere " " como separador de palavras, ignorando-o). O nestLine() pegará a linha inteira.

de qualquer forma, há formas mais fáceis e melhores de trabalhar com XML, só dar uma pesquisada.

R

Obrigado pela dica vou pesquisar novas maneiras de se trabalhar com xml , é quê ainda sou recente no java e tenho muito quê aprender , que bom que posso contar com os amigos deste fórum, um grande abraço e muito obrigado pela solidariedade demonstrada.

Criado 16 de novembro de 2012
Ultima resposta 17 de nov. de 2012
Respostas 9
Participantes 3