ceccoggi
04-03-2008, 11:01
Salve a tutti, vi spiego qual'è il mio problema.
Devo creare un metodo generico che leggendo da un file xml degli elementi, ricerchi all'interno della classe xxx se sono presenti tali parametri e me li cambi secondo il valore corrispondente all'elemento sul file xml.
vi faccio un esempio
XML file:
<classeA>
<param1>pinco</param1>
<param2>pallino</param2>
</classeA>
metodo java:
Pseudocodice
Ciclo sul file XML
Leggo il tag di ogni elemento
Cerco nella classe java che voglio modificare se esiste un parametro uguale al tag dell'elemento cercato sul file xml.
Se c'è modifico il valore di tale parametro con quello letto nell'xml.
Mi è stato consigliato di usare Java.Reflection, ma essendo la prima volta che ne sentivo parlare e la usavo, mi da un'errore nel test...
Di seguito il mio codice java scritto (premettendo che i metodi di navigazione nel tree xml sono personalizzati, presi da una mia classe funzionante)
Class c = this.getClass();
Field campo;
for(int i=0; i<xmlroot.size(); i++){
if((campo=c.getField(xmlroot.getElement(i).getTag()))!=null)
campo.set(campo, xmlroot.getElement(i).getValue());
else{
setMailHost("mailhost");
setMyTo("Marco");
}
}
L'errore che mi da è che leggendo dall'xml il tag "mailHost", dovrebbe cercare all'interno della classe la variabile "mailHost"..e mi dice che non esiste..quando esiste benissimo, quindi deduco di aver sbagliato qualcosa nel codice..
QUalcuno può aiutarmi?
Tnx
Devo creare un metodo generico che leggendo da un file xml degli elementi, ricerchi all'interno della classe xxx se sono presenti tali parametri e me li cambi secondo il valore corrispondente all'elemento sul file xml.
vi faccio un esempio
XML file:
<classeA>
<param1>pinco</param1>
<param2>pallino</param2>
</classeA>
metodo java:
Pseudocodice
Ciclo sul file XML
Leggo il tag di ogni elemento
Cerco nella classe java che voglio modificare se esiste un parametro uguale al tag dell'elemento cercato sul file xml.
Se c'è modifico il valore di tale parametro con quello letto nell'xml.
Mi è stato consigliato di usare Java.Reflection, ma essendo la prima volta che ne sentivo parlare e la usavo, mi da un'errore nel test...
Di seguito il mio codice java scritto (premettendo che i metodi di navigazione nel tree xml sono personalizzati, presi da una mia classe funzionante)
Class c = this.getClass();
Field campo;
for(int i=0; i<xmlroot.size(); i++){
if((campo=c.getField(xmlroot.getElement(i).getTag()))!=null)
campo.set(campo, xmlroot.getElement(i).getValue());
else{
setMailHost("mailhost");
setMyTo("Marco");
}
}
L'errore che mi da è che leggendo dall'xml il tag "mailHost", dovrebbe cercare all'interno della classe la variabile "mailHost"..e mi dice che non esiste..quando esiste benissimo, quindi deduco di aver sbagliato qualcosa nel codice..
QUalcuno può aiutarmi?
Tnx