2016-06-08 3 views
0

Я пытаюсь извлечь данные параметров из XML-файла, созданного COPASI, в Eclipse, используя опубликованный исполняемый файл .jar (http://www.comp.nus.edu.sg/~rpsysbio/pada), который создает 3 файла ODE (.txt), variables (. csv) и параметры (.csv). Это работает для предоставленного XML-файла примера, но при использовании моих собственных данных создается пустой файл .csv par (paramater) (заголовки столбцов). Ошибок не отображаются, а файлы ODE и переменных записываются правильно. Этот код используется для извлечения данных параметров:Извлечение данных параметра из файла XML

void printPar(String outdir){ 
try{ 
    FileOutputStream outfile=new FileOutputStream(outdir+"./par.csv"); 
    PrintWriter out=new PrintWriter(outfile); 
    // header 
    out.println("NAME,INIT,LowerBound,UpperBound,BoundNum,BoundSize"); 
    for (int i=0;i<model.getNumParameters();i++){ 
    Parameter p=model.getParameter(i); 
    //out.println(convert(p.getId())+","+p.getValue()+",,,"); 
    double x=p.getValue(); 
    if(x<1) 
     out.println(convert(p.getId())+","+p.getValue()+",0,1,5"); 
    else if(x<100) 
     out.println(convert(p.getId())+","+p.getValue()+",0,100,5"); 
    else 
     out.println(convert(p.getId())+","+p.getValue()+",0,10000,5"); 
    } 

    out.flush(); 
} catch(IOException e){ 
    e.printStackTrace(); 
} 
} 

Единственное различие я вижу между примером и мой собственный файл XML является то, что в данном примере файл параметров перечислены отдельно от реакций, как так:

<listOfParameters> 
     <parameter id="parameter_1" name="k1" value="0.1" /> 
     <parameter id="parameter_2" name="k2" value="0.1" /> 
     <parameter id="parameter_3" name="k3" value="0.3" /> 
    </listOfParameters> 

в то время как в моем файле параметры указаны для каждой реакции, например:

</reaction> 
... 
     <listOfParameters> 
     <parameter id="k1" name="k1" value="0.0008"/> 
     <parameter id="k2" name="k2" value="1.05e-06"/> 
     </listOfParameters> 
    </kineticLaw> 
    </reaction> 

кто-нибудь есть какие-либо предложения, чтобы исправить эту проблему?

Благодарим вас за внимание!

+0

Я читал testng.xml программно. возможно, тот же сценарий u has.http: //stackoverflow.com/questions/35700078/how-to-run-testng-tests-pointed-to-a-jar – gihan

ответ

0

Если структура XML-файла различна, вы должны использовать разные выражения XPath для извлечения данных.

Чтобы обработать пример файла, который вы должны использовать /listOfParameters, но для XML вы должны использовать /реакции/kineticLaw/listOfParameters

Если вы не можете изменить XPath expresion, то вы должны построить идентичный xml.

Смежные вопросы