PDA

View Full Version : [Java+Xml] Primo programma, inchiodato su lettura nodo


-Ivan-
30-11-2009, 16:13
Ciao a tutti, ho iniziato adesso a vedere come si fa il parsing xml da java ma ho un problema.
Il file xml da cui voglio leggere per adesso è molto banale ed è fatto così:


<?xml version="1.0" ?>
<utenti>
<utente>
<nickname>Ivan</nickname>
<password>gigi</password>
</utente>
</utenti>


Non capisco come poter fare a scorrerlo per raggiungere il campo di testo "Ivan" ed a fare un semplice if (campo letto da xml == "Ivan") System.out.println("esiste Ivan memorizzato come nickname");

Il codice che ho scritto ora seguendo le dispense dell'università è il seguente e devo attenermi a questo, sto cercando di capirlo ma ho qualche problema, se riuscite a dirmi quali comandi mancano per arrivare a leggere il valore testuale del nodo magari riesco a capire anche il resto:


public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {

Document document;
int i=0;

try
{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
//factory.setValidating( true );
DocumentBuilder builder = factory.newDocumentBuilder();
// obtain document object from XML document
document = builder.parse( new File("utenti.xml"));
Node root = document.getDocumentElement();
Node nickname;

if ( root.getNodeType() == Node.ELEMENT_NODE ) {
Element utente = ( Element ) root;
//mi da la lista degli elementi con tag nickname (?speriamo?)
NodeList listaNomeUtente = utente.getElementsByTagName("nickname");

for(i=0; i<listaNomeUtente.getLength(); i++)
{
//scorro la lista dei nickname (quando modificherò il file xml ce ne sarà più di uno)
nickname=listaNomeUtente.item(i);

if (...non so cosa mettere qui...) {
System.out.println("Esiste il nick Ivan");
}
}
}
}
catch(Exception e)
{
System.err.println("Errore durante la lettura dal file");
e.printStackTrace();
}
}

}


Grazie a tutti.