Duvida com XStream

2 respostas
vcsmetallica

Galera,

Tenho que ler o seguinte pedaço de um XML:

<TD50_DATA mtc="520902" utc="2012-10-26 12:04:33" memory_index="53114" latitude="-19.22430333333334" longitude="-46.07183666666666"> <EVENT type="login" driver="0">1212</EVENT> </TD50_DATA>

O problema esta na tag event, eu crie uma classe para a mesma e fiz assim:

xStream.aliasAttribute(Event.class, "type", "type");//type="login" driver="0" xStream.aliasAttribute(Event.class, "driver", "driver");

So que nao sei como pegar o valor 1212.
Como eu vou pegar o valor 1212 dentro dessa tag?

Att

2 Respostas

vcsmetallica

Galera,

Tentei assim e nada!!!

@XmlAttribute private String type; @XmlAttribute private String driver; @XmlValue private String EVENT;

vcsmetallica

Galera,

Eu implementei um converter e agora os atributos não estao sendo mais carregados

public class ConverterEvent implements Converter {

    @Override
    public void marshal(Object value, HierarchicalStreamWriter writer, MarshallingContext context) {
        Event event = (Event) value;
        writer.addAttribute("type", event.getType());
        writer.addAttribute("driver", event.getDriver());
        writer.setValue(event.getTexto());
    }

    @Override
    public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) {
        Event event = new Event();
        event.setTexto(reader.getValue());
        event.setDriver(reader.getAttribute("driver"));
        event.setType(reader.getAttribute("type"));
        return event;
    }

    @Override
    public boolean canConvert(Class clazz) {
        return clazz.equals(Event.class);
    }
    
}
//CHAMADA
 XStream xStream = new XStream();
            xStream.registerConverter(new ConverterEvent());
            xStream.alias("POSITIONS", ArrayList.class);
            xStream.alias("ADDITIONAL", Additional.class);
            xStream.alias("POSITION", Position.class);
            xStream.alias("EVENT", Event.class);
            xStream.aliasAttribute(TD50Data.class, "mtc", "mtc");
            xStream.aliasAttribute(TD50Data.class, "utc", "utc");
           // xStream.aliasAttribute(Event.class, "type", "type");//type="login" driver="0"
            //xStream.aliasAttribute(Event.class, "driver", "driver");
Criado 30 de outubro de 2012
Ultima resposta 30 de out. de 2012
Respostas 2
Participantes 1