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

    Impossibile trovare il file specificato (xml)

    Salve a tutti. Volevo cimentarmi nell'utilizzo dei file xml su eclipse in java, ma ho riscontrato un problema.

    Ho copiato il seguente codice da un sito:

    codice:
    package prova;
    import java.io.File;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    public class prova {
     public static void main(String[] args) {
      try {
       DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance();
       DocumentBuilder builder = documentFactory.newDocumentBuilder();
       Document document = builder.parse(new File("rubrica.xml"));
       NodeList persone = document.getElementsByTagName("persona");
       System.out.println("Totale persone: " + persone.getLength());
       for(int i=0; i<persone.getLength(); i++) {
        Node nodo = persone.item(i);
        if(nodo.getNodeType() == Node.ELEMENT_NODE) {
         Element persona = (Element)nodo;
         String nome = persona.getElementsByTagName("nome").item(0).getFirstChild().getNodeValue();
         String cognome = persona.getElementsByTagName("cognome").item(0).getFirstChild().getNodeValue();
         String telefono = persona.getElementsByTagName("telefono").item(0).getFirstChild().getNodeValue();
         System.out.println("Nome: " + nome);
         System.out.println("Cognome: " + cognome);
         System.out.println("Telefono: " + telefono);
        }
       }
      } catch(Exception e) {
       e.printStackTrace();
      }
     }
    }

    Serve per leggere il seguente file xml:

    codice:
    <rubrica>
    <persona>
      <nome>Tizio</nome>
      <cognome>Rossi</cognome>
      <telefono>0123456789</telefono>
    </persona>
    <persona>
      <nome>Caio</nome>
      <cognome>Bianchi</cognome>
      <telefono>0123456789</telefono>
    </persona>
    <persona>
      <nome>Sempronio</nome>
      <cognome>Verdi</cognome>
      <telefono>0123456789</telefono>
    </persona>
    </rubrica>

    Il file xml l'ho salvato nello stesso package della classe prova. Nonostante ciò quando tento di far partire il programma viene generata un'eccezione all'istruzione di apertura del file

    codice:
       Document document = builder.parse(new File("rubrica.xml"));
    Dicendomi

    codice:
    "java.io.FileNotFoundException: D:\Documenti\Programmi\Workspace eclipse\prova\rubrica.xml (Impossibile trovare il file specificato)"
    Eppure in quella cartella si trova proprio il mio file rubrica.xml ! Spero di essere stato chiaro, grazie in anticipo per una risposta
    Ultima modifica di Leonerd; 22-08-2016 a 22:38

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Leonerd Visualizza il messaggio
    codice:
       Document document = builder.parse(new File("rubrica.xml"));
    Scritto così, senza path relativo o assoluto, è relativo direttamente alla directory "corrente". Quindi NON conta tanto che il file xml sia in un certo package, ma conta che quando viene avviata la applicazione la "working" directory sia esattamente quella directory che contiene il file.
    Stai usando Eclipse, vai a vedere la Run Configuration (menù Run -> Run Configurations...) usata per lanciare la applicazione, scheda Arguments.

    Se hai il (*) Default che nel tuo caso dovrebbe essere ${workspace_loc:prova} vuol dire che la working directory è quella del progetto (che si chiama prova, per coincidenza). Ma se il xml l'hai messo nello stesso package della classe, allora è sotto src/prova e quindi NON è, ovviamente, la stessa cosa.

    Quindi: o cambi la working directory o sposti il file.
    Ultima modifica di andbin; 22-08-2016 a 23:35
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Grazie mille, sei stato chiarissimo.

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.