Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Usare JAXB

Hybrid View

  1. #1
    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
    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();
            }
    
        }
    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.
    Se ci sono altri errori indicatemeli pure.
    Grazie ancora
    Ultima modifica di gattamelogna; 23-01-2015 a 14:58

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da gattamelogna Visualizza il messaggio
    Avrei necessità di leggere non solo txt ma anche file di tipo File
    Che vuol dire!? Il file che stai trattando è "di testo puro", strutturato a "record per righe", con campi separati da ';'. Questo deve essere il formato. Poi che il file di input si chiami pippo.txt oppure pluto.dat o paperino.conf ha poca/nulla importanza per il codice.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Si il file che devo trattare è strutturato in righe e con campi separati da ';', nel rispondere ho formulato in modo non corretto la frase.
    Il codice funziona, grazie per i suggerimenti.
    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.