![]()
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()); }


Rispondi quotando