Salve, questo è il mio codice DOM per attraversare un albero di un documento e stampare degli elementi con relativi attributi:

codice:
 import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.*;
import java.io.*;

public class AnalisiDOM {
private Document d;
private Element r;

public AnalisiDOM(String file) {
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder domParser = dbf.newDocumentBuilder();
d = domParser.parse(new File(file));
r = d.getDocumentElement();
esaminaNodo(r);
}

catch(SAXParseException e) {
System.out.println("Errore di parsing: "+ e.getMessage());
System.exit(1);
}

catch(FileNotFoundException e) {
System.out.println("File "+ file + " non trovato");
System.exit(1);
}

catch(Exception e) {
e.printStackTrace();
}

}// AnalisiDOM

public void esaminaNodo(Node nodo) {

switch(nodo.getNodeType()) {
case Node.ELEMENT_NODE:
System.out.println("Elemento: " + nodo.getNodeName());
NamedNodeMap attributi = nodo.getAttributes();
if(attributi.getLength() > 0) {
System.out.println("\tAttributi: ");
for(int i=0; i Attr attributo = (Attr) attributi.item(i);   System.out.print(attributo.getNodeName() + "=" + attributo.getNodeValue() + " ");
}

System.out.println();
}
esaminaFigli(nodo.getChildNodes());
System.out.println("Fine elemento: " + nodo.getNodeName());
break;
case Node.CDATA_SECTION_NODE: 
case Node.TEXT_NODE:
Text testo = (Text)nodo;
if(!testo.getNodeValue().trim().equals(""))
System.out.println("\tTesto; " + testo.getNodeValue());
break;
}

}// esaminaNodo

public void esaminaFigli(NodeList figli) {
if(figli.getLength() > 0)
for(int i=0; i esaminaNodo(figli.item(i));
}// esaminaFigli 

}
Il compilatore mi segnala degli errori in ROSSO , come correggerli?

for solitamente dovrebbe essere for( ; ; );

GRAZIE in anticipo per le risposte...