Elemento de tag xml[RESOLVIDO]

4 respostas
Viniciustelles

Boa tarde pessoal, consigo ler meu xml todo minha duvida é, como faço para ler dados de uma tag assim…

4 Respostas

nel

Viniciustelles:
Boa tarde pessoal, consigo ler meu xml todo minha duvida é, como faço para ler dados de uma tag assim…

O que está utilizando na leitura do XML ? API´s como JAXB e xStream fazem isso com tranquilidade.

Viniciustelles

Estou utilizando Xstream

nel

Dá uma olhada nisso: http://stackoverflow.com/questions/2533800/xstream-parse-attributes-and-values-at-the-same-time

Viniciustelles

Muito obrigado nel :) .
Para quem tiver o mesmo problema que eu vou postar a solução.

1º Passo Criar uma classe que implemente a interface converter do Xstream. ex:
public class ConversorBeneficiario implements Converter {

    @Override
    public void marshal(Object valor, HierarchicalStreamWriter escreve, MarshallingContext texto) {
        Beneficiario beneficiario = (Beneficiario) valor;
        escreve.addAttribute("cco", beneficiario.getCco());
        escreve.addAttribute("situacao", beneficiario.getSituacao());
        escreve.addAttribute("dataAtualizacao", beneficiario.getDataAtualizacao());


    }

    @Override
    public Object unmarshal(HierarchicalStreamReader ler, UnmarshallingContext texto) {
        Beneficiario beneficiario = new Beneficiario();
        beneficiario.setCco(ler.getAttribute("cco"));
        beneficiario.setSituacao(ler.getAttribute("situacao"));
        beneficiario.setDataAtualizacao(ler.getAttribute("dataAtualizacao"));
        return beneficiario;
    }

    @Override
    public boolean canConvert(Class clazz) {
        return clazz.equals(Beneficiario.class);
    }
}

2º Passo
E na parte de criação dos aliases implementar o conversor:

try {
            XStream xstream = new XStream(new Dom4JDriver());
            xstream.processAnnotations(MensagemSIB.class);
            xstream.registerConverter(new ConversorBeneficiario());
            xstream.alias("conferencia", List.class);
            xstream.alias("beneficiario", Beneficiario.class);

E tudo funciona muito bem :)

Criado 19 de julho de 2012
Ultima resposta 20 de jul. de 2012
Respostas 4
Participantes 2