Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-07-2006, 19: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


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Dopo 23 anni di silenzio, Warcraft 3 spi...
Roblox sfida l'ecosistema gaming: app st...
OpenAI accusata di plagio dai migliori m...
Altro attacco hacker dell'IA: gli agenti...
Stiamo davvero perdendo il controllo del...
Microsoft perde un pilastro: Frank Shaw ...
Diablo V annunciato a sorpresa: il colpo...
Meno di 5 euro per il 5G: l'offerta Kena...
World of Warcraft: Forever è il Classic+...
La Serie A con DAZN e Amazon Prime con l...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
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: 00:28.


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