|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Thread per problemi su JDom
Ciao ragazzi.
Apro questo post per cercare risposta a tutti i problemi in cui potrei imbattermi ora che sto affrontando approfonditamente JDom. Ovviamente chiunque potrà postare qui per i suoi problemi e chi potrà essere d'aiuto (spero anch'io) potrà intervenire. Il mio primo problema è questo: ho creato una classe java con un metodo per aggiungere un tag a un file xml esistente ma il file non viene modificato. Questa è la classe: Codice:
public class GestioneProdotti {
private String completePath, databasePath = "\\Database\\prodotti.xml";
Document document;
Element root;
public GestioneProdotti(String applicationPath) {
try {
SAXBuilder builder = new SAXBuilder();
completePath = applicationPath + databasePath;
document = builder.build(completePath);
}
catch (Exception e) {
e.printStackTrace();
}
}
public void inserisciDaForm(int taglia, String colore, String marca, int disponibilita,
int scorta_minima, int prezzo_vendita, int prezzo_acquisto)
throws IOException {
//Prendo il root del file
Element root = document.getRootElement();
//Creazione tag figli del tag prodotti
Element tagliaElement = new Element("taglia");
Element coloreElement = new Element("colore");
//Settaglio del testo di tali tag
tagliaElement.setText("" + taglia);
coloreElement.setText(colore);
//Creazione del nuovo tag prodotto
Element newprodotto = new Element("prodotti");
//Aggiunta dei tag figli al nuovo tag prodotto
newprodotto.addContent(tagliaElement);
newprodotto.addContent(coloreElement);
//Aggiunta del nuovo tag prodotti al root
root.addContent(newprodotto);
document.setRootElement(root);
XMLOutputter outputter = new XMLOutputter();
outputter.output(document, System.out);
}
}
Codice:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE root SYSTEM "prodotti.dtd"> <root> <prodotti> <taglia>43</taglia> <colore>rosso</colore> <marca>Nike</marca> <disponibilita>3</disponibilita> <scorta_minima>1</scorta_minima> <prezzo_vendita>60</prezzo_vendita> <prezzo_acquisto>50</prezzo_acquisto> </prodotti> <prodotti> <taglia>44</taglia> <colore>nero</colore> <marca>Nike</marca> <disponibilita>10</disponibilita> <scorta_minima>6</scorta_minima> <prezzo_vendita>100</prezzo_vendita> <prezzo_acquisto>57</prezzo_acquisto> </prodotti> <prodotti> <taglia>48</taglia> <colore>rosso</colore> <marca>Puma</marca> <disponibilita>13</disponibilita> <scorta_minima>10</scorta_minima> <prezzo_vendita>60</prezzo_vendita> <prezzo_acquisto>20</prezzo_acquisto> </prodotti> <prodotti> <taglia>40</taglia> <colore>giallo</colore> <marca>Adidas</marca> <disponibilita>4</disponibilita> <scorta_minima>1</scorta_minima> <prezzo_vendita>77</prezzo_vendita> <prezzo_acquisto>45</prezzo_acquisto> </prodotti> </root> Ultima modifica di boysna : 10-06-2006 alle 10:29. Motivo: Generalizzazione del post a tutti i problemi relativi JDom |
|
|
|
|
|
#2 | ||
|
Member
Iscritto dal: Jan 2004
Città: Chiavari (GE)
Messaggi: 161
|
ti manca questo pezzo
Quote:
Quote:
__________________
...e va bene cervello, tu non piaci a me e io non piaccio a te, ma facciamola questa cosa, così potrò tornare a sbomballarti con la birra! |
||
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Grazie mille va bene ora.
Ho modificato il post precedente per generalizzare la discussione a tutti i problemi riguardanti JDom. Ciao. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Alla classe precedente ho aggiunto un nuovo metodo:
Codice:
public void inserisciDaFile(String path){
//Creo il Document relativo al file da cui inserire
try {
SAXBuilder builder = new SAXBuilder();
Document doc = builder.build("E:\\Documents and Settings\\stefano\\Desktop\\prodotti.xml");
}
catch (Exception e) {
e.printStackTrace();
}
//Prendo il root di tale Document e ne prelevo la lista dei prodotti
Element rootInput = doc.getRootElement();
Iterator listaProdotti = rootInput.getChildren().iterator();
while(listaProdotti.hasNext()){
root.addContent((Element)listaProdotti.next());
}
document.setRootElement(root);
XMLOutputter outputter = new XMLOutputter();
FileOutputStream output = new FileOutputStream(completePath);
outputter.output(document, output);
}
Nel file che dovrebbe essere modificato non trovo nessuna modifica. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
C'era un problema nel file xml.
Ora però mi da Java.NullPointerException quando chiamo la getRootElement sul Document. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Mar 2004
Città: castel san giorgio(salerno)
Messaggi: 1218
|
Ho visto che anche l'altro metodo della classe non funziona, cioè mi da questa eccezione.
Eppure funzionava correttamente, possibile che abbia cambiato qualcosa che mi faccia avere questi errori ovunque faccia una document.getRootElement()? |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:34.



















