Bom dia Galera!
To com um problema aqui com a forma que eu estou lendo um arquivo de XML.
Segue o XML:
<?xml version="1.0" encoding="iso-8859-1" ?>
<sroxml>
<versao>1.0</versao>
<qtd>3</qtd>
<TipoPesquisa>Lista de Objetos</TipoPesquisa>
<TipoResultado>Último evento</TipoResultado>
<objeto>
<numero>PH082984683BR</numero>
<evento>
<tipo>BDE</tipo>
<status>01</status>
<data>24/09/2012</data>
<hora>16:48</hora>
<descricao>Entregue</descricao>
<recebedor> </recebedor>
<documento> </documento>
<comentario> </comentario>
<local>CDD MARACANAU</local>
<codigo>61900971</codigo>
<cidade>MARACANAU</cidade>
<uf>CE</uf>
<sto>12414000</sto>
</evento>
</objeto>
</sroxml>
import java.io.*;
import com.thoughtworks.xstream.XStream;
public class TesteXStream {
public static void main(String[] args) throws FileNotFoundException {
// Criando um objeto XStream
XStream xstream = new XStream();
// Passando os dados de XML para Objetos Java
sroxml minhaBusca = (sroxml)xstream.fromXML(new FileInputStream(new File("C:/Users/Regina/Desktop/teste.xml")));
System.out.println(minhaBusca.getNumero());
System.out.println(minhaBusca.getDescricao());
}
}
Segue a classe sroxml:
public class sroxml {
private String versao;
private String qtd;
private String TipoPesquisa;
private String TipoResultado;
objeto objeto = new objeto();
public String getNumero() {
// TODO Auto-generated method stub
return objeto.getNumero();
}
// getters e setters ...
}
public class objeto {
private String numero;
evento evento = new evento();
public String getNumero() {
// TODO Auto-generated method stub
return numero;
}
// getters e setters ...
}
O problema é quando eu quero puxar do meu XML e ele tem apenas 1 objeto, ele lê tranquilo.
Mas quando eu tenho mais de 1 objeto, ele da o seguinte erro:
Exception in thread "main" com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$DuplicateFieldException: Duplicate field objeto
---- Debugging information ----
field : objeto
class : sroxml
required-type : sroxml
converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
path : /sroxml/objeto[2]
line number : 42
version : null
-------------------------------
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$3.add(AbstractReflectionConverter.java:242)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:332)
at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:234)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1058)
at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1042)
at com.thoughtworks.xstream.XStream.fromXML(XStream.java:922)
at TesteXStream.main(TesteXStream.java:13)
Desde já Agradeço!