This is XML:
<cv>
<pessoa id="1">
<dadosPessoais>
<nome></nome>
<sexo></sexo>
<idade></idade>
</dadosPessoais>
<formação>
<instituição nome="" país="">
<curso anoIni="" anoFim="" nível="">
</curso>
</instituição>
</formação>
<formação>
<instituição nome="" país="">
<curso anoIni="" anoFim="" nível="">
</curso>
</instituição>
</formação>
</pessoa>
</cv>
My difficulty is in reading the elements that are in tag Formation. Since there is more than one tag with the same name (formation), when I put it to save in a txt
, it only shows up the data from the first tag my project the person can add as many formations as he wants.
try {
doc = builder.build(f);
root = (Element) doc.getRootElement();
List<Element> pessoas = root.getChildren();
for (int i = 0; i < pessoas.size(); i++){
Element pessoaS = pessoas.get(i);
try { // criar
File diretorio = new File("c:\CV");
diretorio.mkdir(); //cria, se possível
File arquivo = new File(diretorio, "cv_"+ pessoaS.getAttributeValue("id") +".txt");
FileWriter fw;
fw = new FileWriter(arquivo);
BufferedWriter b = new BufferedWriter(fw);
b.write("Nome: " + pessoaS.getChild("dadosPessoais").getChildText("nome"));
b.write("\r\n");
b.write("Sexo: " + pessoaS.getChild("dadosPessoais").getChildText("sexo"));
b.write("\r\n");
b.write("Idade: " + pessoaS.getChild("dadosPessoais").getChildText("idade"));
b.write("\r\n\r\n");
b.write(pessoaS.getChild("formação").getChild("instituição").getChild("curso").getAttributeValue("nível") + ": " + pessoaS.getChild("formação").getChild("instituição").getAttributeValue("nomeDaInstituicao")+ " (" + pessoaS.getChild("formação").getChild("instituição").getAttributeValue("nomePaisCurso") + ")");
b.write("\r\n");
b.write("Curso: " + pessoaS.getChild("formação").getChild("instituição").getChildText("curso"));
b.write("\r\n");
b.write("Início: " + pessoaS.getChild("formação").getChild("instituição").getChild("curso").getAttributeValue("anoIni"));
b.write("\r\n");
b.write("Término: " + pessoaS.getChild("formação").getChild("instituição").getChild("curso").getAttributeValue("anoFim"));
b.write("\r\n\r\n");
b.close();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (JDOMException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}