Boa tarde pessoal,
alguém saberia explicar a situação abaixo?
A lista retornada contém 2 elementos, na primeira passagem pelo loop, fuciona normalmente, mas na segunda passagem da o erro [color=red]Exception in thread “main” java.lang.IndexOutOfBoundsException: Index: 1, Size: 0[/color] E estranho, pois no índice 1, contém um elemento na lista.
Não se preocupem com o resto do código, o problema está no argumento passado ao construtor new XMLcolor=red[/color]
Mas usando o for do Java 5, funciona normalmente.
List<Element> listaServidores = new ArrayList<Element>();
listaServidores = servidores.setTagServidorGroup("servidores");
int tamanhoListaServidores = listaServidores.size();\O tamanho retornado é 2
for(int i = 0; i < tamanhoListaServidores; i++){
XML grupoServidor = new XML(listaServidores.get(i));\ <---- O erro ocorre aqui
listaServidorGroup = grupoServidor.setTags("servidorgroup");
if(!listaServidorGroup.isEmpty()){
for(int j = 0; j < listaServidorGroup.size(); j++){
XML tagUsuario = new XML (listaServidorGroup.get(j));
nomeServidorGroup.add(tagUsuario.lerElemento().getFirstChild().getNodeValue()) ;
System.out.println(tagUsuario.lerElemento().getFirstChild().getNodeValue());
}
}
listaServidores = grupoServidor.setTags("servidor");
if(!listaServidores.isEmpty()){
for(int m = 0; m < listaServidores.size(); m++){
XML tag = new XML(listaServidores.get(m));
nomeServidor.add(tag.lerElemento().getFirstChild().getNodeValue());
System.out.println(tag.lerElemento().getFirstChild().getNodeValue());
}
}
}//end for
Usando o for do Java 5, funciona.
List<Element> listaServidores = new ArrayList<Element>();
listaServidores = servidores.setTagServidorGroup("servidores");
int tamanhoListaServidores = listaServidores.size();
//Este for está funcionando
for(Element var : listaServidores){
XML grupoServidor = new XML(var);// <-- é passado o mesmo elemento ao construtor
listaServidorGroup = grupoServidor.setTags("servidorgroup");
if(!listaServidorGroup.isEmpty()){
for(int j = 0; j < listaServidorGroup.size(); j++){
XML tagUsuario = new XML (listaServidorGroup.get(j));
nomeServidorGroup.add(tagUsuario.lerElemento().getFirstChild().getNodeValue()) ;
System.out.println(tagUsuario.lerElemento().getFirstChild().getNodeValue());
}
}
listaServidores = grupoServidor.setTags("servidor");
if(!listaServidores.isEmpty()){
for(int m = 0; m < listaServidores.size(); m++){
XML tag1 = new XML(listaServidores.get(m));
nomeServidor.add(tag1.lerElemento().getFirstChild().getNodeValue());
System.out.println(tag1.lerElemento().getFirstChild().getNodeValue());
}
}
}//end for
Agradeço a atenção, abs.