Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problema Con Java Y Jdom

Iniciado por Zeigon, 09 de Febrero de 2004, 11:42:20 PM

« anterior - próximo »

Zeigon

 vamos a ver, yo tengo este codigo q lo q pretende hacer es recibir el texto de una caja en la q se escribe el nombre de una sección de un perdiodico en un XML y comprobar si esa sección ya existe en el XML pa no volver a crearla, claro ta:


/*Recibe el Element Root en un principio y luego con las recursivas llamadas pues los hijos de cada Element, recorriendo así todo el árbol; y también recibe el nombre de la sección a comprobar*/

public boolean checkSection(Element elemento, String nombre)
{
   //Comprueba si ya existe la seccion

   List children = elemento.getChildren();
   Iterator iterator = children.iterator();
 
   while (iterator.hasNext())
   {
       Element child = (Element) iterator.next();
             
       if (child.getName() == "NOMBRE" && child.getText() == nombre)
       {
               return true; //Si existe la seccion se pira
       }
       
       checkSection(child, nombre);
   }
   
   return false; //Si no existe, pues eso, devuelve false

   //Fin comprobación
}



el problema es q trás hacer mil comprobaciones, no se pq no entra en el IF de comprobar nombre de sección, es decir, si lo pongo en 2 Ifs, el 1º q vea si la etiqueta es nombre y su texto es variable nombre, pues en el priemro si entra pq detecta la etiqueta, pero NO pilla luego el texto de la etiqueta. HE comprobado si se recibía el texto (que sí), si ambos texto, child.getText() y variable nombre, eran iguales o tenían espacios, pero no, son exactamente iguales pero por alguna extraña razón no entra en ese IF por lo q no comprueba nombres, por lo que las secciones siempre las toma como inexistentes, por lo q me jode todo  (nooo)


plis una ayudita con este problemita  (ole)  
eigon
----------------------------------------------
El arca de Noe fue construida por amateurs.
El Titanic por profesionales.

sés

 La "extraña" razón es que en Java no puedes comparar cadenas de esa forma (cadena1 == cadena2).

Tienes que usar el método equals() de la clase String.

Cambia el el if por este:
if( child.getName().equals( "NOMBRE" ) && child.getText().equals( nombre) )
Y, si no quieres diferenciar mayúsculas y minúsculas:
if( child.getName().equalsIgnoreCase( "NOMBRE" ) && child.getText().equalsIgnoreCase( nombre) )
Soy indeciso... ¿o no?

Zeigon

 pues gracias pq ya me estaba volviendo loco. es q esto de q Java sea tan parecido a C no va bien :P  se usan métodos para todo  :)

lo del ignorecase habia puesto lo mismo pero con tolower en el nuevo codigo, y graciñas otra vez :)

se nota q es un ejercicio para clase, no?  :P  
eigon
----------------------------------------------
El arca de Noe fue construida por amateurs.
El Titanic por profesionales.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.