Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-07-2006, 20:30   #1
boysna
Senior Member
 
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
Errore nella modifica di un file xml con jdom

Ragazzi ho un problema con la modifica di un file xml tramite jdom.

Purtroppo mi da questo errore "org.jdom.IllegalAddException: The element already has an existing parent "root"" quando vado ad aggiungere al root il nuovo elemento, quindi quando faccio la chiamata root.addContent(cliente).

Devo aggiungere un tag e per fare ciò uso la classe GestioneAcquisti:

Codice:
public class GestioneAcquisti {
	
	private String completePath, databasePath = "\\Database\\acquisti.xml";
	Document acquisti;

	
	
	public GestioneAcquisti(String applicationPath) {
		try {
			SAXBuilder builder = new SAXBuilder();
			completePath = applicationPath + databasePath;
			acquisti = builder.build(completePath);
		}
		catch (Exception e) {
			e.printStackTrace();
		}
	}
	

    //metodo principale	
    public void registraAcquisto(String login, Bean.PackProdotti carrello){
    	
    	if(!haGiaAcquistato(login, carrello)){
    		//Codice per l'inserimento di un nuovo cliente
    	}
    	
    	
    	
    }
    

    //Verifica se c'è gia un tag cliente con attributo login pari all'input
    //Se c'è inserisce dei nuovi tag come figli del tag trovato
    public boolean haGiaAcquistato(String login, Bean.PackProdotti carrello){
    	
    	boolean bool = false;
    	Element root = acquisti.getRootElement();
    	List clientiList = root.getChildren("cliente");
    	Iterator clienti = clientiList.iterator();
    	Enumeration listaProdotti = carrello.listaProdotti();
    	
    	while(clienti.hasNext()){
    		Element cliente = (Element)clienti.next();
    		String loginTemp = (String)cliente.getAttributeValue("login");
    		if(loginTemp.equals(login)){    			
    			while(listaProdotti.hasMoreElements()){
    				inserisciAcquistoUtente(cliente, (String[])listaProdotti.nextElement(), root);    			
    			}

    			
    			
    		}
    	}
    	
    	return bool;
    	
    	
    }
    

    //Dopo aver trovato l'elemento a cui bisogna aggiungere i figli, si inseriscono i medesimi: le informazioni sono incluse in prodotto
    public void inserisciAcquistoUtente(Element cliente, String[] prodotto, Element root){
            	
    	Element acquisto = new Element("acquisto");
		Element data = new Element("data");
		Element prezzo = new Element("prezzo");
		Element quantita = new Element("quantita");
		Element taglia = new Element("taglia");
		Element colore = new Element("colore");
		Element marca = new Element("marca");
		Element id = new Element("id");
		
		data.setText("tempo");
		prezzo.setText(prodotto[3]);
		quantita.setText(prodotto[4]);
		taglia.setText(prodotto[0]);
		colore.setText(prodotto[1]);
		marca.setText(prodotto[2]);
		id.setText(prodotto[5]);
		
		acquisto.addContent(data);
		acquisto.addContent(prezzo);
		acquisto.addContent(quantita);
		acquisto.addContent(taglia);
		acquisto.addContent(colore);
		acquisto.addContent(marca);
		acquisto.addContent(id);
		
		cliente.addContent(acquisto);
	
		root.addContent(cliente);
		
		acquisti.setRootElement(root);
		
		try{
		XMLOutputter outputter = new XMLOutputter();
		FileOutputStream output = new FileOutputStream(completePath);
		outputter.output(acquisti, output);
		}
		
		catch (FileNotFoundException e) {
			e.printStackTrace();
		}
			
		catch (IOException e) {
			e.printStackTrace();
		}
		
    	
    }
}
La struttura di acquisti.xml è questa:
Codice:
<root>  
  	
  <cliente login="mariorossi">
      <acquisto>
        <data>14/07/2006</data>
        <prezzo>60</prezzo>
        <quantita>2</quantita>
        <taglia>43</taglia>
        <colore>rosso</colore>
        <marca>Nike</marca>
        <id>00001</id> 
      </acquisto>
  </cliente> 
</root>
boysna è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
AOC propone un QD-OLED al prezzo di un I...
AGCOM segnalerà la AI Mode di Goo...
L'Estonia porta ChatGPT in classe: firma...
2 nm giapponesi contro TSMC: il piano di...
Questa scopa elettrica Tineco iFLOOR 5 è...
FRITZ!Box 6825 4G sbarca in Italia a 129...
Red Hat presenta Digital Sovereignty Rea...
AMD Zen 6 'Olympic Ridge': sette configu...
Amazon batte Walmart dopo 30 anni: il so...
Digos nel mirino dell'intelligence cines...
Sony non vuole aumentare il prezzo della...
Energia geotermica: la (costosa) rispost...
MG ha già venduto 1 milione di au...
"Something Big Is Happening" —...
Renault chiude il 2025 con una perdita r...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 07:54.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v