Categorie
Winzipedia Uso dell'wiki |
Java /
JDOM-EsempioJava.JDOM-Esempio VersioniNascondi le modifiche minori - Mostra le modifiche 02/08/2006 ore 23:22 CEST
di - Sistemazione della formattazione in testo a dimensione fissa del codice.
Modificate le linee 14-16: da:
<?xml version="1.0" encoding="UTF-8"?> <!-- a:
<?xml version="1.0" encoding="UTF-8"?> <!-- Modificate le linee 22-25: da:
--> <!DOCTYPE config SYSTEM "config.dtd"> <config> a:
--> <!DOCTYPE config SYSTEM "config.dtd"> <config> Modificate le linee 45-46: da:
</config> a:
</config> Modificate le linee 59-86: da:
/* * * */ import java.io.File;\\ import java.io.FileWriter;\\ import java.io.IOException;\\ import java.io.Writer;\\ import java.util.Hashtable;\\ import java.util.Iterator;\\ import java.util.List;\\ import org.jdom.Document;\\ import org.jdom.Element;\\ import org.jdom.JDOMException;\\ import org.jdom.input.SAXBuilder;\\ import org.jdom.output.XMLOutputter;\\ import org.jdom.transform.JDOMSource;\\ /** * */ public class Parser { a:
/* * Parser.java * * Created on 26 giugno 2006, 23.11 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ import java.io.File;\\ import java.io.FileWriter;\\ import java.io.IOException;\\ import java.io.Writer;\\ import java.util.Hashtable;\\ import java.util.Iterator;\\ import java.util.List;\\ import org.jdom.Document;\\ import org.jdom.Element;\\ import org.jdom.JDOMException;\\ import org.jdom.input.SAXBuilder;\\ import org.jdom.output.XMLOutputter;\\ import org.jdom.transform.JDOMSource;\\ /** * * @author abaddon */ public class Parser { Modificate le linee 208-210: da:
} a:
} Modificate le linee 213-214: da:
Parser.getIstanza.getDatabaseConfig().get("database") // ritorna "postresql" a:
Parser.getIstanza.getDatabaseConfig().get("database") // ritorna "postresql" Modificate le linee 216-217: da:
Parser.getIstanza().getDatabaseConfig().put("database","mysql"); a:
Parser.getIstanza().getDatabaseConfig().put("database","mysql"); Modificate le linee 219-220: da:
Parser.getIstanza.getDatabaseConfig().get("database") // ritorna "mysql" a:
Parser.getIstanza.getDatabaseConfig().get("database") // ritorna "mysql" Modificate le linee 222-225: da:
Parser.getIstanza().updateXml(); a:
Parser.getIstanza().updateXml(); Modificate le linee 225-228: da:
E' una prima versione della classe, potri benissimo modificarla a breve e migliorarla soprattutto per quanto riguarda la gestione dei tag "oggetti" diminuendo anche il numero dei metodi usati che come si nota fanno tutti la stessa cosa.... ma su soggetti diversi, sarebbe bene generalizzare un pochetto il tutto... per ora : a:
E' una prima versione della classe, potri benissimo modificarla a breve e migliorarla soprattutto per quanto riguarda la gestione dei tag "oggetti" diminuendo anche il numero dei metodi usati che come si nota fanno tutti la stessa cosa.... ma su soggetti diversi, sarebbe bene generalizzare un pochetto il tutto... per ora :D Modificate le linee 2-3: da:
'''Autori:''' [[Profiles.Stefano | Stefano Longhi]] a:
'''Autori:''' [[Profiles.Stefano | Stefano Longhi]] 27/06/2006 ore 17:42 CEST
di - Formattazione
Modificate le linee 2-4: da:
'''Autori:''' '''Hanno contribuito:''' a:
'''Autori:''' [[Profiles.Stefano | Stefano Longhi]]\\ Modificate le linee 5-7: da:
->Questa classe permette di leggere e scrivere un file Xml usando Hashtable, oggetti molto semplici da gestire all'interno del programma. a:
->[-Questa classe permette di leggere e scrivere un file Xml usando Hashtable, oggetti molto semplici da gestire all'interno del programma.-] ->[-Nella sezione 1 indicato il file XML d'esempio, nella sezione 2 la classe e nella sezione 3 qualche esempio di utilizzo con una breve descrizione.-] 27/06/2006 ore 00:28 CEST
di - formattazione
Modificate le linee 6-8: da:
-> Nella sezione 1 indicato il file XML d'esempio, nella sezione 2 la classe e nella sezione 3 qualche esempio di utilizzo con una breve descrizione. a:
->Questa classe permette di leggere e scrivere un file Xml usando Hashtable, oggetti molto semplici da gestire all'interno del programma. ->Nella sezione 1 indicato il file XML d'esempio, nella sezione 2 la classe e nella sezione 3 qualche esempio di utilizzo con una breve descrizione. 27/06/2006 ore 00:27 CEST
di - Classe che permette di leggere e scrivere file XML usando hashtable
Aggiunte le linee 1-232:
!Titolo dell'articolo '''Autori:''' Abaddon\\ '''Hanno contribuito:''' ->'''Sommario''' !!Sezione 1 - File XML E' composto da 3 blocchi principali, identificati dal tag "oggetto", che si chiamano database, amministrazione, stampa. Questi blocchi contengono le informazioni che servono per il corretto funzionameto dei 3 oggetti all'interno del programma e sono delimitate dal tag "var".\\ <?xml version="1.0" encoding="UTF-8"?> <!-- Document : config.xml Created on : 29 marzo 2006, 16.53 Author : abaddon Description: Purpose of the document follows. --> <!DOCTYPE config SYSTEM "config.dtd"> <config> <oggetto nome="database"> <var tipo="database">postgresql</var> <var tipo="url">127.0.0.1</var> <var tipo="nomedb">iper2</var> <var tipo="utente">postgres</var> <var tipo="password"></var> </oggetto> <oggetto nome="amministratore"> <var tipo="password">adminPASS</var> </oggetto> <oggetto nome="stampa"> <var tipo="destPdfBolla">./bolla</var> <var tipo="destPdfCentro">./centro</var> <var tipo="destPdfCliente">./cliente</var> <var tipo="destPdfDDT">./ddt</var> <var tipo="destPdfElencoBolle">./elenco/bolle</var> <var tipo="destPdfelencoClienti">./elenco/bolle</var> <var tipo="destPdfElencoCentri">./elenco/centro</var> </oggetto> </config> !!Sezione 2 - Classe java Codice sorgente: /* * Parser.java * * Created on 26 giugno 2006, 23.11 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ import java.io.File;\\ import java.io.FileWriter;\\ import java.io.IOException;\\ import java.io.Writer;\\ import java.util.Hashtable;\\ import java.util.Iterator;\\ import java.util.List;\\ import org.jdom.Document;\\ import org.jdom.Element;\\ import org.jdom.JDOMException;\\ import org.jdom.input.SAXBuilder;\\ import org.jdom.output.XMLOutputter;\\ import org.jdom.transform.JDOMSource;\\ /** * * @author abaddon */ public class Parser { private static Parser istanza=null; private Element root=null; private Document doc=null; private SAXBuilder builder=null; private Hashtable<String,String> databaseConfig=null; private Hashtable<String,String> amministrazioneConfig=null; private Hashtable<String,String> stampaConfig=null; /** Creates a new instance of Parser */ private Parser() { databaseConfig=new Hashtable<String,String>(); amministrazioneConfig=new Hashtable<String,String>(); stampaConfig=new Hashtable<String,String>(); readFileXml(); listChildren(root,"root"); } public static Parser getIstanza(){ if(istanza==null) istanza=new Parser(); return istanza; } private void readFileXml(){ try { builder = new SAXBuilder(); doc = builder.build("./config.xml"); root = doc.getRootElement(); } catch (IOException ex) { Log.getIstanza().sendException(ex.getMessage()); } catch (JDOMException ex) { Log.getIstanza().sendException(ex.getMessage()); } } public void listChildren(Element current, String nodo) { if(nodo.equals("database")){ setDatabaseHash(current); }else if(nodo.equals("amministratore")){ setAmministratoreHash(current); }else if(nodo.equals("stampa")){ setStampaHash(current); } List children = current.getChildren(); Iterator iterator = children.iterator(); while (iterator.hasNext()) { Element child = (Element) iterator.next(); if(current.getAttributeValue("nome")!=null) listChildren(child, current.getAttributeValue("nome")); else listChildren(child, "root"); } } private void setDatabaseHash(Element current) { databaseConfig.put(current.getAttributeValue("tipo"),current.getValue()); } private void setStampaHash(Element current) { stampaConfig.put(current.getAttributeValue("tipo"),current.getValue()); } private void setAmministratoreHash(Element current) { amministrazioneConfig.put(current.getAttributeValue("tipo"),current.getValue()); } public Hashtable<String,String> getDatabaseConfig(){ return databaseConfig; } public Hashtable<String,String> getAmministrazioneConfig(){ return amministrazioneConfig; } public Hashtable<String,String> getStampaConfig(){ return stampaConfig; } public void updateXml(){ writeFileXml(root,"root"); XMLOutputter serializer = new XMLOutputter(); try { Writer wout=new FileWriter(new File("./config.xml")); serializer.output(doc, wout); } catch (IOException ex) { ex.printStackTrace(); } } private void writeFileXml(Element current, String nodo) { if(nodo.equals("database")){ setDatabaseXml(current); }else if(nodo.equals("amministratore")){ setAmministratoreXml(current); }else if(nodo.equals("stampa")){ setStampaXml(current); } List children = current.getChildren(); Iterator iterator = children.iterator(); while (iterator.hasNext()) { Element child = (Element) iterator.next(); if(current.getAttributeValue("nome")!=null) writeFileXml(child, current.getAttributeValue("nome")); else writeFileXml(child, "root"); } } private void setDatabaseXml(Element current) { System.out.println("UPDATE "+current.getAttributeValue("tipo")); current.setText(databaseConfig.get(current.getAttributeValue("tipo"))); } private void setAmministratoreXml(Element current) { current.setText(amministrazioneConfig.get(current.getAttributeValue("tipo"))); } private void setStampaXml(Element current) { current.setText(stampaConfig.get(current.getAttributeValue("tipo"))); } } !!Sezione 3 - Esempi - Lettura di un parametro:\\ Parser.getIstanza.getDatabaseConfig().get("database") // ritorna "postresql" - Modifica di un parametro solo in memoria:\\ Parser.getIstanza().getDatabaseConfig().put("database","mysql"); - Rilettura del parametro:\\ Parser.getIstanza.getDatabaseConfig().get("database") // ritorna "mysql" - Scrittura delle modifiche anche sul file XML\\ Parser.getIstanza().updateXml(); !!Note |