Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con XML y DOM

Estas en el tema de Problema con XML y DOM en el foro de Java en Foros del Web. Hola que tal, estaba haciendo un pequeño proyecto y tengo problemas con un archivo XML. Aca detallo como esta formado el archivo <xml> <control> <hijo1>propiedad</hijo1> ...
  #1 (permalink)  
Antiguo 02/07/2005, 07:42
 
Fecha de Ingreso: marzo-2004
Mensajes: 41
Antigüedad: 20 años, 1 mes
Puntos: 0
Problema con XML y DOM

Hola que tal, estaba haciendo un pequeño proyecto y tengo problemas con un
archivo XML. Aca detallo como esta formado el archivo

<xml>
<control>
<hijo1>propiedad</hijo1>
<hijo2>propiedad</hijo2>
<hijo3>propiedad</hijo3>
...
<hijoN>propiedad</hijoN>
</control>
<control>
...
</control>
<control>
...
</control>
</xml>

Lo que tengo que hacer es levantar todos los elementos </control> y sus
respectivos hijos, de a 1 control por vez. El problema es que no se los
nmbres que no se los nombres quie van a tener los hijos ni cuantos van a
ser.

El codigo que estoy usando es:

Cita:
public class XMLParser {

public XMLParser() { }

public void dameTodos() throws SAXException, IOException,
ParserConfigurationException {

Document file = domFact.newDocumentBuilder().parse("c:\\prueba.xml ");
//abro mi archivo xml
NodeList nodos = file.getElementsByTagName("control");
//Me traigo todos los tags <control> a una NodeList

System.out.println(nodos.getLength());
//imprime la longitud de la nodelist (hasta aqui va todo bien)

Node nodo = nodos.item(0);
//Me traigo el primer nodo, en un futuro esto se iterara y se traeran
todos los nodos de a 1 por vez.

System.out.println(nodo.getChildNodes().getLength( ));
//imprime: (la cantiadd de hijos de mi tag <control>) * 2 + 1 <-- esto es
lo que esta mal
//si hago System.out.println(nodo); lo imprime sin errores

NodeList nodo2 = (NodeList) nodo;
//casteo el nodo a una NodeList

System.out.println(nodo2.getLength());
//imprime: (la longitud de la nodelist) * 2 + 1 <-- lo pruebo de otra
forma e imprime lo mismo

}
}
Cuando levanto el nodo <control> lo levanta sin problemas. Se me complica
todo cuando quiero conseguir los hijos del mismo. Si hago un getLenght me
trae la cantidad de hijos * 2 + 1. Proble casteandolo a Element pero es lo
mismo...
¿Alguno tiene idea que estoy haciendo mal? Pruebenlo si quieren, el xml es
facil de hacer y el codigo es simplemente eso. Me estoy empezando a
frustrar.

Agradezco sus respuestas :3
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:16.