Ciao.
Ho un problema sul codice da scrivere per effetture il parsing di un file xml(con JDOM).
Ho già creato una classe per il parsing di un file xml con meno tag e funziona..in questo caso il mio problema è "scendere" per ottenere gli elementi che mi interessano.
il file xml è strutturato così:
codice:
<xml>
<ricetta><descrizione>nome Ricetta</descrizione>
<ingredienti><ingrediente><nome></nome>
<numpersone></numpersone>
</ingrediente>
<ingredienti>
</ricetta>
</xml>
Ecco,io riesco a scorrere solo fino a ricetta (..e "descrizione")
e gli elementi che mi interessano sono quelli inseriti in <alimento>.
Probabilmente ha una risoluzione molto semplice...però io ho davvero tentato in tutti i modi di farlo funzionare!
codice:
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import java.util.*;
import java.util.List;
import org.jdom.*;
import org.jdom.input.*;
public class LettoreRicette {
public void LetturaRXML() {
try {
//creiamo la lista in cui inseriremo tutti i dati
List listaa= new ArrayList();
SAXBuilder builder = new SAXBuilder();
/*Questo oggetto fornisce il metodo build il quale si occupa di
effettuare il parsing del file XML passatogli in argomento, e
di salvarlo in un oggetto Document fornito sempre dalle librerie JDOM.
*/
Document document = builder.build(new File("listaricette.xml"));
//otteniamo la radice del documento xml
Element rootElement = document.getRootElement();
//La classe Element è la classe fondamentale,perchè ci permette di utilizzare le funzionalità del JDOM
//scorriamo gli elementi figli
List children = rootElement.getChildren();
Iterator iterator = children.iterator();
//per ogni figlio
while (iterator.hasNext()){
Element elericette = (Element)iterator.next();
System.out.println("che e' " + elericette.getName());**questo system.out.println lo uso semplicemente come prova per capire dove sono "arrivato"..in questo caso come output mi scrivere "che e' ricetta"
}
} catch (JDOMException e) {
System.err.println("Errore nell'utilizzo dei meccanismi JDOM");
e.printStackTrace();
} catch (IOException e) {
System.err.println("Errore durante la lettura dal file");
e.printStackTrace();
}
}
}
ciao,grazie.