FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Cómo puedo leer los datos de este xml!!
Hola a tod@s,
lo primero decir que soy nuevo aquí y he estado buscando por varios sitios pero no he encontrado ninguna posible solución de poder leer este documento xml: <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> <Event> <Pepe Angle="1.5437588697563402" Range="7.200984157558928" altitude="380.892" entityID="2003" event="Position" latitude="36.710891754656565" longitude="67.21611066229325" request="0" timestamp="1229331438562"/> </Event> Lo mas que me he acercado ha sido a que me muestre el nombre, los demas nodos no se cómo tratarlos, he hecho lo siguiente: ShowMessage(XML.DocumentElement.ChildNodes[0].NodeName); Estoy completamente atascado, he probado también ésto: XML.DocumentElement.ChildNodes[0].ChildNodes[1].NodeName pero me da el error de "list index out of bound" Agradezco cualquier tipo de ayuda Última edición por bone fecha: 21-01-2009 a las 12:00:17. |
#2
|
||||
|
||||
Hola,
Sé bienvenido al ClubDelphi. Me temo que no voy a poder darte una respuesta concreta, sin embargo, tal vez puedas recoger alguna idea de lo siguiente: en realidad lo que estás buscando son "atributos" de un determinado "nodo". Ya estás pudiendo acceder a dicho "nodo", como dices, puedes acceder al nombre de ese "nodo". Pues bien, ese nodo ha de tener "atributos", y estos son en realidad, según se ve, los que contienen los valores que te interesan. Así que no debes buscar "nodos" del "nodo", sino "atributos" del "nodo" en cuestión. Echa un vistazo al resto de propiedades del "nodo", de la misma manera que accedes a su nombre, debes poder acceder a sus "atributos". Lamento no poder decirte otra cosa. |
#3
|
||||
|
||||
Gracias, lo probare y te comento
|
#4
|
||||
|
||||
Bueno, conseguir leerlo (y ponerlo en un Grid, por ejemplo) desde Delphi es bastante fácil.
El componente TClientDataset permite leer ficheros XML de disco. * Graba el contenido en un fichero XML que llanmaremos test.XML. * Crea un nuevo proyecto delphi y añade los siguientes componentes: (TDbGrid, TDataSource, TClientDatset y un TXMLTransformProvider -luego veremos para qué...-) ... NOTA: Creo que acabo antes si grabo cómo se hace y lo ves (por eso de más vale 1 imagen que mil palabras) y además creo que va a ser más rápido. Una vez que tengas los componentes en el form y el fichero XML, sigue estos pasos. LINK DEMO (la demo son 3 MG, así que paciencia, tarda un poquito en cargar...) El fichero de transformación deberá sevir para todos los XML que lleguen con esa estructura. Un saludo.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
||||
|
||||
Hola,
Joroba, se quejará el compañero... con una película con lo que puede hacer y todo... |
#6
|
||||
|
||||
Lo primero, gracias a ambos por vuestro tiempo y dedicacion.
Neftali, lo que me digiste me ayudó muchisimo, pero ahora me han especificado mejor lo que tengo que hacer y me han pasado el fichero xml completo y tiene unas 700 líneas, o nodos, no estoy muy puesto en ficheros xml, y aparte de eso la carpeta que los contiene tiene también unos 700 xml con la misma estructura. La cuestión es que lo he probado según tu video, y con tantos no funciona, me aparece el error de: "ERROR: Couldn´t create a transformation", después de hacer los siguientes pasos: tools -> xml mapper -> file -> open -> una vez abierto -> bton derecho -> select all -> create datapacket from xml y el recuadro de datapacket me aparece vacio pero pone arriba <Generated>, pulso el boton de 'create and test transformation' y es cuando me aparece el error abajo en la derecha. Si se os ocurre alguna forma de solucionarlo, estoy abierto a cualquier sugerencia, ya que me han puesto un plazo muy corto de tiempo para entregarlo, no obstante seguiré investigando la manera de solucionarlo y si encuentro alguna solución la posteare para futuras dudas. Gracias por vuestro tiempo y un saludo |
#7
|
||||
|
||||
Hola bone.
La verdad es que son pocos datos; Si tener el fichero XML es difícil saber porqué puede estar sucediendo el error; Tal vez por el número de nodos, tal vez por la estructura, tal vez por caracteres raros en el contenido. En realidad puede ser cuelquier cosa. Si tienes posibilidad de subir ese fichero, súbelo y podemos hacer pruebas. La otra opción es "parsear" el fichero de forma manual, para ir extrayendo datos. Eso te representará más trabajo y más posibilidad de errores. Un saludo.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#8
|
|||
|
|||
el link me aparece como roto me podrias pasar de nuevo el link gracias muy buen aporte neftali
el del demo |
#9
|
|||
|
|||
Busqueda Incremental En Delphi Con Lectura De Archivo Xml
Video que muestra como cargar archivos XML mediante un ClientDataSet para hacer búsquedas incrementales.... puede serles de utilidad; en Dailymotion. No puedo colocarles en enlace, por reglas del foro.
Saludos, Javier.- |
#10
|
||||
|
||||
Hola Javier.
Intenta colocar el enlace utilizando alg así: h_t_t_p_:_//enlace_correcto
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
como puedo hacer este calculo | esimon | Impresión | 2 | 27-10-2008 14:01:19 |
¿Como puedo en este foro....? | fredo | Varios | 11 | 12-08-2005 18:53:03 |
Como puedo leer un archivo de variable... | vicvil | Varios | 4 | 10-08-2005 22:31:02 |
Como puedo ver este campo ??? | chele | Impresión | 1 | 29-03-2004 16:04:28 |
Como puedo leer las tablas de una BD *.Dat | IcebergDelphi | Tablas planas | 1 | 10-12-2003 14:47:22 |
|