Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    [JAVA] Creazione file Xml con JDom

    Il problema sta nel codice evidenziato ossia non mi permette di aggiungere all'elemento "DatiRetributivi" più elementi "Settimana". Come posso risolvere il problema????

    Grazie




    codice:
    import java.io.*;
    import java.util.*;
    import org.jdom.*;
    import org.jdom.output.XMLOutputter;
    
    
    public class CreaXml {
    
        public CreaXml(String nomeFile) 
            {
            try
                {
                 writeFile(nomeFile);
                }
            catch(Exception e)
                {
                System.err.println ("errore: "+e);
                }
            }
    
        public void writeFile(String path) throws Exception
            {
            
            /*
            ISTANZIAMO UN OGGETTO Element 
            PASSANDOGLI LA STRINGA 
            CHE SARA' IL NOME DEL NOSTRO SUPERTAG 
            /**/
            Element root = new Element("DenunceRetributiveMensili");
    
            /*
            ISTANZIAMO UN OGGETTO Document
            PASSANDOGLI COME PARAMETRO L'OGGETTO
            ELEMENT PRECEDENTEMENTE ISTANZIATO
            /**/
            Document documento = new Document(root);
    
            /*
            ISTANZIAMO ALTRI OGGETTI Element 
            PASSANDOGLI LE STRINGHE
            CHE SARANNO I NOMI DEI NOSTRI TAG 
            /**/
            
            
            Element Imponibile = new Element("Imponibile");
            Element Settimana = new Element("Settimana");
            Element GiorniRetribuiti = new Element("GiorniRetribuiti");
            
            /*
            ASSEGNAMO DEI VALORI AI TAG 
            /**/
            Imponibile.addContent("2985");
            GiorniRetribuiti.addContent("26");
            
            /*
            AGGIUNGIAMO I TAG sopra caricati AL TAG DatiMittente
            /**/
            
            DatiRetributivi.addContent(Imponibile);
            
         for(int i = 0; i<6;i++)
                {
                Settimana.addContent("1");
                DatiRetributivi.addContent(Settimana);
                }
            
            DatiRetributivi.addContent(GiorniRetribuiti);
            DenunciaIndividuale.addContent(DatiRetributivi);
            ListaDenunceIndividuali.addContent(DenunciaIndividuale);
            Azienda.addContent(ListaDenunceIndividuali);
            
            /*
            AGGIUNGIAMO IL TAG Azienda
            AL SUPERTAG root
            /**/
    
            root.addContent(Azienda);
    
            BufferedWriter out = null;
    
            try
               {
               out = new BufferedWriter(new FileWriter(path));
    
               /*
               ISTANZIAMO LA CLASSE XMLOutputter
               CHE CI PERMETTE DI FORMATTARE IL
               FILE XML.
               /**/
               XMLOutputter xout = new XMLOutputter();
               xout.setIndent(true);
               xout.setNewlines(true);
    
               /*
               CON QUESTA ISTRUZIONE SCRIVIAMO
               IL DOCUMENTO documento IN UN
               BufferedWriter CHE CREA IL FILE
               TRAMITE UN FileWriter
               /**/
               xout.output(documento,out);
               }
            catch (IOException e)
               {
               System.err.println ("errore: "+e);
               }
            finally
               {
                try
                    {
                     out.close();
                    }
                catch(IOException e)
                    {
                    System.err.println ("errore: "+e);
                    }
                }
            }
    
             public static void main(String args[])
             {
                 CreaXml crea = new CreaXml("C:\\Workzone\\Java_Xml\\Xml.xml");
              }
    
        }

  2. #2
    Uppinooooooooooo

    LeleFt confido in te.

  3. #3

  4. #4
    Originariamente inviato da mcolombara
    xml risultante?
    In che senso, mi va in errore e non produce niente. Comunque mi aspetto nell'elemento "DatiRetributivi" n elementi "Settimana".


  5. #5
    ok. Ma che errore/eccezione è sollevata?

    E DatiRetributivi dove è inizializzato?

  6. #6

    Re: [JAVA] Creazione file Xml con JDom

    Copiando il codice avevo cancellato delle righe.... comunque l'errore è:

    codice:
    errore: org.jdom.IllegalAddException: The element "Settimana" could not be added as a child of "DatiRetributivi": The element already has an existing parent "DatiRetributivi"



    codice:
    import java.io.*;
    import java.util.*;
    import org.jdom.*;
    import org.jdom.output.XMLOutputter;
    
    
    public class CreaXml {
    
        public CreaXml(String nomeFile) 
            {
            try
                {
                 writeFile(nomeFile);
                }
            catch(Exception e)
                {
                System.err.println ("errore: "+e);
                }
            }
    
        public void writeFile(String path) throws Exception
            {
            
            /*
            ISTANZIAMO UN OGGETTO Element 
            PASSANDOGLI LA STRINGA 
            CHE SARA' IL NOME DEL NOSTRO SUPERTAG 
            /**/
            Element root = new Element("DenunceRetributiveMensili");
    
            /*
            ISTANZIAMO UN OGGETTO Document
            PASSANDOGLI COME PARAMETRO L'OGGETTO
            ELEMENT PRECEDENTEMENTE ISTANZIATO
            /**/
            Document documento = new Document(root);
    
            /*
            ISTANZIAMO ALTRI OGGETTI Element 
            PASSANDOGLI LE STRINGHE
            CHE SARANNO I NOMI DEI NOSTRI TAG 
            /**/
            Element Azienda = new Element("Azienda");
            Element DatiRetributivi = new Element("DatiRetributivi");
            Element DenunciaIndividuale = new Element("DenunciaIndividuale");
            Element ListaDenunceIndividuali = new Element("ListaDenunceIndividuali");
            Element Imponibile = new Element("Imponibile");
            Element Settimana = new Element("Settimana");
            Element GiorniRetribuiti = new Element("GiorniRetribuiti");
            
            /*
            ASSEGNAMO DEI VALORI AI TAG 
            /**/
            Imponibile.addContent("2985");
            GiorniRetribuiti.addContent("26");
            DatiRetributivi.addContent(Imponibile);
            
         for(int i = 0; i<6;i++)
                {
                Settimana.addContent("1");
                DatiRetributivi.addContent(Settimana);
                }
            
            DatiRetributivi.addContent(GiorniRetribuiti);
            DenunciaIndividuale.addContent(DatiRetributivi);
            ListaDenunceIndividuali.addContent(DenunciaIndividuale);
            Azienda.addContent(ListaDenunceIndividuali);
            
            /*
            AGGIUNGIAMO IL TAG Azienda
            AL SUPERTAG root
            /**/
    
            root.addContent(Azienda);
    
            BufferedWriter out = null;
    
            try
               {
               out = new BufferedWriter(new FileWriter(path));
    
               /*
               ISTANZIAMO LA CLASSE XMLOutputter
               CHE CI PERMETTE DI FORMATTARE IL
               FILE XML.
               /**/
               XMLOutputter xout = new XMLOutputter();
               xout.setIndent(true);
               xout.setNewlines(true);
    
               /*
               CON QUESTA ISTRUZIONE SCRIVIAMO
               IL DOCUMENTO documento IN UN
               BufferedWriter CHE CREA IL FILE
               TRAMITE UN FileWriter
               /**/
               xout.output(documento,out);
               }
            catch (IOException e)
               {
               System.err.println ("errore: "+e);
               }
            finally
               {
                try
                    {
                     out.close();
                    }
                catch(IOException e)
                    {
                    System.err.println ("errore: "+e);
                    }
                }
            }
    
             public static void main(String args[])
             {
                 CreaXml crea = new CreaXml("C:\\Workzone\\Java_Xml\\Xml.xml");
              }
    
        }

  7. #7
    prova con

    for(int i = 0; i<6;i++)
    {
    Element Settimana = new Element("Settimana");
    Settimana.addContent("1");
    DatiRetributivi.addContent(Settimana);
    }

  8. #8
    Originariamente inviato da mcolombara
    prova con

    for(int i = 0; i<6;i++)
    {
    Element Settimana = new Element("Settimana");
    Settimana.addContent("1");
    DatiRetributivi.addContent(Settimana);
    }

    Proverò ma non penso che si possano istanziare più oggetti Element con lo stesso nome.

    Non è possibile creare un'array di oggetti Element????

  9. #9
    al momento non ricordo. Non uso JDOM. Io utilizzo più che altro SAX. In principal modo mi appoggio al tool Castor.

    Sappimi dire come prosegue la cosa...

  10. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Originariamente inviato da anatroccolo
    Proverò ma non penso che si possano istanziare più oggetti Element con lo stesso nome.

    Non è possibile creare un'array di oggetti Element????
    Non è possibile istanziare più oggetti con lo stesso nome, ma è possibile utilizzare uno stesso nome per far riferimento, in tempi diversi, a oggetti diversi:
    codice:
    Element Settimana = null;
    for(int i = 0; i<6;i++) { 
       Settimana = new Element("Settimana"); 
       Settimana.addContent("1"); 
       DatiRetributivi.addContent(Settimana); 
    }
    E' sufficiente spostare la dichiarazione all'esterno del ciclo for, ma istanziare nuovi oggetti all'interno.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

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 © 2024 vBulletin Solutions, Inc. All rights reserved.