Salve, questo è il mio codice DOM per attraversare un albero di un documento e stampare degli elementi con relativi attributi:
Il compilatore mi segnala degli errori in ROSSO , come correggerli?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 }
for solitamente dovrebbe essere for( ; ; );
GRAZIE in anticipo per le risposte...

Rispondi quotando

