De xml a access

Quería preguntarte algo a ver si me puedes echar un cable. Dispongo de un archivo .xml el cual quiero importar a access. Sin embargo, tras la importación me copia sólo la estructura de la base de datos, pero no los datos dentro de las tablas. ¿Sabrías decirme por qué no me copia los datos?

1 respuesta

Respuesta
1

Veamos, un archivo xml no es más que un archivo de texto llano con un contenido concreto, en este caso tags.

Cada archivo xml es diferente, es decir, si cambian los tags, la importación puede no valer.

Si lo que tienes son archivos xml con la misma estructura, lo que haría yo es escribir un código que me los importe a base de leer los tags.

Cabria ver cual es la estructura de tus tags.

Que yo sepa, por lo menos hasta la version 2003 no había importación de xml directamente a Access. Si se trata de access 2010, dímelo y echo un vistazo.

Hola Tomaseroles, gracias ante todo por tu respuesta.

Te comento.. los xml que manejo son diferentes, pues los tags cambian de unos a otros. Utilizo access 2010 y este si que tiene la opción de importar xml, pero como te digo, sólo me importa la estructura y los datos de las tablas (los atributos en xml), no.

Quisiera escribir un par de lineas en java, para que me leyera el xml y me lo transformara a una base de datos de access, pero no se como empezar ni que librerías de java necesitaría, y apenas he encontrado información por internet.

Te agradecería tu ayuda enormemente.

1000 Gracias de nuevo.

Susana

Java y yo nunca nos hemos llevado muy bien. Supongo que es porque nunca le he dedicado el tiempo suficiente.

De todos modos, me pica la curiosidad.

Tengo instalado Access 2010, así que me gustaría probarlo. ¿Puedes pasarme un archivo de ejemplo para que pueda probar a importarlo a ver si veo que puede estar pasando?

Mi correo es [email protected]

No hace falta que me envíes nada. Ya lo tengo claro.

He tomado una base de datos que tengo y he hecho una exportación de una tabla a xml y después una importación.

Cuando se exporta access genera dos archivos, un xml con los datos y un xsd con la estructura de la tabla. Si importas el xsd sólo te crea la tabla. Si importas el xml te crea los campos y te importa los datos.

Prueba y me cuentas

Hola Tomaseroles,

mil gracias por tu contestación. Te comento, he probado con dos pequeñas tablas que me he creado en access y cuando las exporto pues me crea el xml y el xsd. Hasta ahí ok.

Luego guardo los dos archivitos en una carpeta '(xml y xsd). Cuando vuelvo a access importo el xml y no el xsd y efectivamente me ha cargado la estructura y los datos. Fantástico!

Sin embargo yo ahora dispongo sólo de un xml y lo que no consigo hacer es convertir ese xml en un xsd o producir su xsd. Alguna idea?

El xsd veo que es un XML Schmema File, sin embargo no sé como transfórmalo.

Te agradecería de nuevo tu apoyo, pues hasta aquí has sido muy efectivo! :)

Tomaseroles, ignora mi correo antenior. Abriendo el xml con VB lo he guardado con formato xsd y me lo ha transformado. Así que ya dispongo de los dos, el xml y el xsd.

A continuación me voy a access y procedo a la importación de xml y me vuelve a copiar la estructura pero no los datos!!! Dios que horror! voy a seguir probando a ver si atino de una vez.... pero es que no hay manera...

Claro. No me extraña.

Prueba a hacer una cosa: toma los dos archivos xml y xsd que tenías y ábrelos con el bloc de notas.

Verás que son diferentes: el xsd contiene la información para crear la tabla, y el sml, teniendo la tabla y/o el xsd pasa los datos.

Cada uno sirve para una cosa, por lo que no puedes convertir uno en otro: la estructura de los tags es diferente.

He visto que si importas el xml, como access encuentra el xsd (en el xml dice que hay un xsd), crea la estructura de la tabla a partir del xsd y después rellena los datos, por lo que necesitas los dos. He cambiado el nombre del xsd y cuando quiero importar el xml dice que si quieres arroz Catalina...

Por tanto, se necesitan los dos, por lo menos para empezar, a no ser que te lo tomes con calma, analices la información del xml, crees la tabla a pinrel y después importes los datos del xml. No lo he probado, pero igual funciona.

Todo depende de la carga que tengas, es decir, si tienes que reconstituir una tabla de ... no se 5000 registros a base de archivos xml te vale la pena perder un rato creando los campos. Si de lo que se trata es de que son xml distintos para tablas distintas, pide los xsd a quien te da los xml.

La otra opción, si esto no te vale, es importar el xml en excel y una vez lo tengas pasar a access. Eso funciona. Lo he probado y funciona.

Ya me dirás que tal

Vale gracias. Con mi pequeña tabla de prueba me sale, tanto importando a excel y luego a access, como con el xsd y xml. Es decir, las dos opciones.

Sin embargo el archivo xml que realmente quiero, no hay manera.

Es decir, lo he importado a excel y me sale distribuido, pues no se trata de un xml con una tabla, sino varias. Entonces en el excel me salen los datos distribuidos en sus correspondientes celdas. El problema es que cuando lo importo a excel, sí que aparece, pero todo en la misma tabla, cuando en realidad se tratan de varias tablas. Entonces sólo tengo la opción de pedir el xsd correspondiente a ese xml o crear la tabla a pincel. Sin embargo lo de crear la tabla a pincel sólo sería efectivo para ese xml en concreto, pues cada vez la tabla tiene un formato distinto.

Intentaré ponerme en contacto contigo por email y pasarte una muestra de ese xml.

Muchas gracias de antemano.

Susana

A ver si va a ser que el xml tiene algún fallo.

La tabla que usé era muy sencilla, y es un tema que no he probado nunca.

Mándame esa información, o similar, con que haya unos cuantos registros ficticios me vale, los reales no me importan lo más mínimo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas