Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [java] Exception jdom

  1. #1
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568

    [java] Exception jdom



    ma che cavolo vuole... sto codice mi genera una eccezione...
    in pratica ho una hashtable con dentro degli element..
    la riordino per chiave e creo un nuovo Document...
    poi faccio un ciclo, recupero man mano gli element dalla hashtable...
    solo che quando cerco di aggiungerli al nuovo documento non me lo lascia fare !!!

    vi prego sono disperato... saran 2 ore che ci lotto...

    codice:
    try {
    
    			doc = builder.build(fileXML);
    			
    			// ESTRAZIONE TUTTI I NODI
    			elencoNodi = doc.getRootElement().getChildren(); 
    
    			// PER OGNI NODO
    			Iterator i = elencoNodi.iterator();
    			while (i.hasNext()) {
    				
    				// ESTRAE IL NODO MESSAGGIO
    				Element nodo = (Element)i.next();	
    				
    				// RECUPERA LA CHIAVE DEL NODO
    				keyNodo = nodo.getChild("DATA").getTextNormalize() + nodo.getChild("ORA").getTextNormalize();
    				
    				// AGGIUNGE IL NODO CON LA SUA CHIAVE IN HASHTABLE
    				alberoXML.put(keyNodo, nodo);
    
    			}
    
    			// CREO PREPARO NUOVO NODO DA INSERIRE
    			Element nuovoNodo = new Element("MESSAGGIO");
    			nuovoNodo.setText(aggiungiMessaggio.getContenuto());
    Element dataChild = new Element("DATA").setText(aggiungiMessaggio.getData());
    			nuovoNodo.addContent(dataChild);		
    			Element oraChild = new Element("ORA").setText(aggiungiMessaggio.getOra());
    			nuovoNodo.addContent(oraChild);
    
    			// AGGIUNGO LA CHIAVE DEL NUOVO MESSAGGIO NELLA HASHTABLE
    			alberoXML.put(aggiungiMessaggio.getData() + aggiungiMessaggio.getOra(),nuovoNodo);
    
    			// RIORDINO KEY IN UN VETTORE
    			Vector v = new Vector(alberoXML.keySet());
    			Collections.sort(v);
    			
    			// CREO IL NUOVO DOCUMENTO	
    			Document docNew = new Document();
    			Element rootNew = new Element("MESSAGGI");
    			docNew.setRootElement(rootNew); 
    			rootNew = docNew.getRootElement();
    			
    			// PER OGNI VOCE DEL VETTORE AGGIUNGI ELEMENT ALLA ROOT
    			for(int a = 0;a<v.size();a++){
    				Element recuperoElemento = (Element)alberoXML.get(v.elementAt(a));
    				rootNew.addContent(recuperoElemento);
    			}
    			
    			// CHIAMO FUNZIONE DI SCRITTURA DOCUMENTO
    			writeXml("messaggi.xml", docNew);
    
    		}catch(Exception e){
    			System.out.println("Errore: " + e.toString() + e.getMessage());
    		}
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  2. #2
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    dimenticavo...
    questa è l'eccezione sollevata :

    Errore: org.jdom.IllegalAddException: The element already has an existing parent "MESSAGGI"
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

  3. #3
    Utente di HTML.it L'avatar di morphy79
    Registrato dal
    Jun 2004
    Messaggi
    1,568
    grande !!!!

    recuperoElemento.detach();

    e ti toglie il parent, così non solleva più l'eccezione e tutto funziona a meraviglia !!!
    odio chi parla di politica..
    anzi vorrei fondare un partito contro tutto ciò

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.