Olá!!
Tenho um programa que lê um XML utilizando o org.w3c.dom.* Quando tento criar uma lista com os nomes das variantes que há no XML dá erro!
Parte do XML lido:
<padrao numero="7" nome="Realizar Acompanhamento" variante="S" opcional="N"> ...
<variante numero="1" nome="Avaliações Educação Física"> ...
<variante numero="2" nome="Avaliações Fisioterapia"> ...
<variante numero="3" nome="Avaliações Terapia Ocupacional" />
Parte do código que dá erro:
public Vector getVariantes (String padrao){
Vector variantes = new Vector();
if (eVariante(padrao)){
no = getTag("padrao");
for (int i =0; i < no.getLength(); i++){
Element elemento = (Element)no.item(i);
//verifica se o padrao é o mesmo passado como parametro
if (elemento.getAttribute("nome").equals(padrao)){
i = no.getLength() +1;
NodeList lista = elemento.getChildNodes();
for (int j=0; j<lista.getLength(); j++){
elemento = (Element)lista.item(j); // ** ERRO !!! **
//define os atributos das tabelas, analisando a tag atributo
if( elemento.getTagName().equals("variante")){
variantes.addElement(elemento.getAttribute("nome"));
}
}
}
}
}
return variantes;
} Tanto no quanto lista são NodeList.
O erro na execução de “elemento = (Element)lista.item(j);”:
java.lang.ClassCastException
at gerador.XMLManager.getVariantes(XMLManager.java:208 )
at gerador.FrameGerador.elaboraPanelPadroes(FrameGerador.java:372)
at gerador.FrameGerador.btnAvancar_actionPerformed(FrameGerador.java:681)
at gerador.FrameGerador$8.actionPerformed(FrameGerador.java:191)
…
O que fazer?? Parece que o problema está em que lista.item(j) é um Node, mas eu preciso que ele seja um Element, para análise futura… Como resolvo isso?? Alguma dica de codificação??



