Grazie per la risposta, attualmente ho questo codice
La classe Documento che contiene una lista di Elementi
codice:@XmlRootElement public class Documento { private List<Elemento> elemento = new ArrayList<Elemento>(); @XmlElement(name="elemento") public List<Elemento> getListaElementi() { return elemento; } public void setListaElementi(List<Elemento> listaElementi) { this.elemento = listaElementi; }
Una classe Elemento
codice:public class Elemento { private String nomeAutore; private String titolo; public String getNomeAutore() { return nomeAutore; } @XmlElement public void setNomeAutore(String nomeAutore) { this.nomeAutore = nomeAutore; } public String getTitolo() { return titolo; } @XmlElement public void setTitolo(String titolo) { this.titolo = titolo; }
ed una classe che mi permette di creare il file xml
In questo modo mi genera il file xml in modo corretto, quindi riesco a vedere tutti i libri, se il file di input è di tipo txt.codice:public void Prova() { try { documento = new Documento(); File f = new File("C:\\prova.txt"); in = new BufferedReader(new FileReader(f)); String str; while ((str = in.readLine()) != null) { elemento = new Elemento(); process(str, elemento); } p(documento); } catch (Exception e) { e.printStackTrace(); } } public void process(String s, Elemento elemento) { String[] tokens = s.split(";"); elemento.setNomeAutore(tokens[0]); elemento.setTitolo(tokens[1]); documento.getListaElementi().add(elemento); } public void p(Documento doc) { try { File file = new File("C:\\file.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(Documento.class); Marshaller jaxbMarshaller = jaxbContext.createMarshaller(); // output pretty printed jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); jaxbMarshaller.marshal(doc, file); jaxbMarshaller.marshal(doc, System.out); } catch (JAXBException e) { e.printStackTrace(); } }
Se ci sono altri errori indicatemeli pure.
Grazie ancora

Rispondi quotando
