Ver Mensaje Individual
  #6 (permalink)  
Antiguo 22/06/2009, 09:42
palomarp
 
Fecha de Ingreso: julio-2008
Mensajes: 47
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problema con java

Hola,

muchísimas gracias a todos por vuestras respuestas. Como dice drac94, no tengo ningún problema al leer el XML, pues lo hago perfectamente. Mi problema está en operar después con la información que obtengo del mismo, de la que ésta es un ejemplo:

Datos: 1 uid: 00:l6:p3:65; pda_mac: 255.623.489.251; id_dispositivo: 1; id_sensor: 1; pr: -30.0; posX: 50.0; posY: 250.0; tiempo: 20090618173725
Datos: 2 uid: 00:l6:p3:65; pda_mac: 255.623.489.251; id_dispositivo: 1; id_sensor: 2; pr: -50.0; posX: 50.0; posY: 250.0; tiempo: 20090618173725
Datos: 3 uid: 00:l6:p3:65; pda_mac: 255.623.489.251; id_dispositivo: 1; id_sensor: 3; pr: -26.0; posX: 50.0; posY: 250.0; tiempo: 20090618173725
Datos: 4 uid: 00:l6:p3:65; pda_mac: 255.623.489.251; id_dispositivo: 1; id_sensor: 4; pr: -62.0; posX: 50.0; posY: 250.0; tiempo: 20090618173725
Datos: 5 uid: p8:56:kj:2m; pda_mac: 255.623.489.251; id_dispositivo: 1; id_sensor: 1; pr: -65.0; posX: 100.0; posY: 150.0; tiempo: 20090505165415
Datos: 6 uid: p8:56:kj:2m; pda_mac: 255.623.489.251; id_dispositivo: 1; id_sensor: 2; pr: -51.0; posX: 100.0; posY: 150.0; tiempo: 20090505165415
Datos: 7 uid: p8:56:kj:2m; pda_mac: 255.623.489.251; id_dispositivo: 1; id_sensor: 3; pr: -40.0; posX: 100.0; posY: 150.0; tiempo: 20090505165415
Datos: 8 uid: p8:56:kj:2m; pda_mac: 255.623.489.251; id_dispositivo: 1; id_sensor: 4; pr: -45.0; posX: 100.0; posY: 150.0; tiempo: 20090505165415


Esta información se obtiene de una base de datos que almacena potencias y posiciones, con las que yo después debo resolver un sistema de ecuaciones. Pero soy incapaz de plantearlo, pues sólo consigo que me saque los cuatro últimos valores, aunque aquí tengo 8 y podría tener más.

El código que estoy utilizando es el siguiente:

public void parsearDocumento() {

Element docEle = dom.getDocumentElement();
NodeList nl = docEle.getElementsByTagName("dato");

if (nl != null && nl.getLength()>0) {

for (int i = 0; i<nl.getLength();i++) {

Element elemento = (Element)nl.item(i);
Datos dato = obtenerDato (elemento);
listadoDatos.add(dato);

}
}
}


public Datos obtenerDato(Element elemento) {

id = Integer.parseInt(elemento.getAttribute("id"));
uid = obtenerTexto(elemento, "uid");
pda_mac = obtenerTexto(elemento, "pda_mac");
id_dispositivo = obtenerEntero(elemento, "id_dispositivo");
id_sensor = obtenerEntero(elemento, "id_sensor");
pr = obtenerDoble(elemento, "pr");
posX = obtenerDoble(elemento, "posX");
posY = obtenerDoble(elemento, "posY");
tiempo = obtenerTexto(elemento, "tiempo");

d1 = Math.sqrt((cuadrado(x1)) + (cuadrado(y1)));
d2 = Math.sqrt((cuadrado(x2)) + (cuadrado(y2)));
d3 = Math.sqrt((cuadrado(x3)) + (cuadrado(y3)));
d4 = Math.sqrt((cuadrado(x4)) + (cuadrado(y4)));

//Aquí va el código del mensaje inicial

double[][] b1={{pot1},{pot2},{pot3},{pot4}};
b = new Matrix(b1);

double[][] a1={{1.,coef1}, {1.,coef2},{1.,coef3},{1.,coef4}};
A = new Matrix(a1);

//Crear un objeto Datos con los datos recibidos
Datos d = new Datos(id, uid, pda_mac, id_dispositivo, id_sensor, pr, posX, posY, tiempo);
return d;

}


Lo que necesito ahora es modificarlo de forma que pueda resolver sistemas con más de 4 ecuaciones. ¿Alguna idea de cómo podría hacerlo?

Muchas gracias por todo y disculpad las molestias.

Un saludo,


Paloma

Última edición por palomarp; 22/06/2009 a las 10:37