Vi prego di darmi una mano. Dovrei leggere un file xml e prendere dei nomi da questo. Vi pregherei di scaricare l' xml al primo link di questo sito:
http://www.drugbank.ca/downloads
Il senso del codice sarebbe, finchč non trovi questa stringa "<drug-interaction>" continua a leggere, poi avanza di due righe e salva il nome di una stringa. Se eseguite il codice vi verrą fuori una nullpointerException che non mi so spiegare....se cercate nell' xml il nome precedente all' eccezione, cercando "<name>Simvastatin</name>" si vede che non č finito il file, perchč ho un nullpointerexception nel ciclo?codice:while((line.indexOf("<drug-interaction>"))==-1){
Il codice č questo:
codice:import java.io.*; public class Prova{ public static void main(String [] args) { try{ String line=""; BufferedReader reader = new BufferedReader(new FileReader("drugbank.xml")); int tot=0; //Conterrą il numero di righe del file while((line=reader.readLine())!=null){ tot=tot+line.length(); } reader = new BufferedReader(new FileReader("drugbank.xml")); line=reader.readLine(); while(reader.ready()){ String namegene=""; String namedrug=""; boolean founded=false; //boolean per ricerca partner id boolean match=false; //bool confrtonto nomi bio4j e drugbank.xml int position=0; //per riavvolgere il buffer int start, end=0; boolean hastarget=false; //Non tutti i drug hanno dei target while((line.indexOf("<drug-interaction>"))==-1){ //scorro fino ad avere un drug if(tot-position==0) System.exit(0); //FINE FILE, DRUG CONTROLLATI line=reader.readLine(); //position=position+line.length(); } //position=position+line.length(); line=reader.readLine(); //position=position+line.length(); line=reader.readLine(); //position=position+line.length(); start=line.indexOf("<name>")+6; end=line.indexOf("</name>"); namedrug+=line.substring(start, end); System.out.println("namedrug is "+namedrug+'\n'); } reader.close(); } catch(IOException e){System.out.println("Errore IO");} } }

Rispondi quotando