Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Errore in codice DOM, aiutatemi....

    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...

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Leggere il regolamento... niente epiteti nei titoli e linguaggio assente

    Consiglio una lettura di un libro sulle basi di Java.

    Il ciclo for vuole 3 argomenti: inizializzazione, test e incremento
    Il costrutto switch ha questa forma:
    codice:
    switch( valore ) {
       case ...: istruzioni; break;
       case ...: istruzioni; break;
       case ...: istruzioni; break;
       ...
    }
    Bastava leggere quello che diceva il compilatore.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.