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");}
}
}