Importación de un XML a través de VBA |
Responder |
Autor | |
germanpr
Nuevo Unido: 18/Febrero/2022 Localización: Sevilla Estado: Sin conexión Puntos: 1 |
Opciones de entrada
Gracias(0)
Enviado: 18/Febrero/2022 a las 13:12 |
Buenas a todos.
Soy novato en el foro y recurro a él porque mis conocimientos de Access son bastante limitados aunque tengo conocimientos avanzados en VBA. Os pongo en situación. Tengo un XML que quiero importar a una tabla de Access existente. Dicho XML tiene una estructura de la siguiente forma aprox: <alumno> <identificacion @id="28444555A"> <nombre>Pepe</nombre> <apellidos>Gotera</apellidos> </identificacion> <datos_postales> <direccion>Desengaño 21</direccion> <municipio>Sevilla</municipio> <provincia>Sevilla</provincia> <cp>41010</cp> </datos_postales> <datos_contacto> <telefono>954000000</telefono> <movil>600000000</movil> <email>pepe.gotera@gmailer.com</email.com </alumno> El fichero puede tener unos 80.000 registros. He intentado acceder al fichero, leer los nodos alumno e ir sacando los datos en variables. Luego con esas variables montar una consulta INSERT INTO e insertar en la tabla correspondiente. Si lo hago con un XML con 5 alumnos lo hace bien, si lo hago con un XML de 80.000 registros como que tarda bastante (ya va por casi 2 horas). He mirado para importar el XML directamente a una tabla y hacer luego un INSERT INTO alumnos VALUES SELECT * from nuevosAlumnos o algo así y he visto el metodo Application.ImportXML pero al lanzarlo me crea una tabla por cada nodo y en esa tabla mete los datos de esos nodos...por ejemplo me crea una tabla nombre, una tabla apellidos, una tabla telefono....etc.... ¿Habria alguna forma de importar todo a una misma tabla guardandome la trasladando la estructura del XML como estructura de la tabla? Gracias de antemano y espero haberme explicado bien :) |
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14011 |
Opciones de entrada
Gracias(0)
|
emiliove
Administrador Unido: 16/Junio/2009 Localización: Mexico Estado: Sin conexión Puntos: 5694 |
Opciones de entrada
Gracias(0)
|
Aparte de lo que dice el señor Mihura, tu estructura del xml no es valida, debería de ser:
<nombre>Pepe</nombre> <apellidos>Gotera</apellidos> </identificacion> <direccion>Desengaño 21</direccion> <municipio>Sevilla</municipio> <provincia>Sevilla</provincia> <cp>41010</cp> </datos_postales> <telefono>954000000</telefono> <movil>600000000</movil> <email>pepe.gotera@gmailer.com</email> 'Aquí agregas .com y no cierras el email </datos_contacto> 'Tampoco cierras datos contacto </alumno> Tampoco no dices de que forma haces la importación pues hay varias maneras aparte de Dom como atinadamente sugiere Mihura, saludos.
Editado por emiliove - 18/Febrero/2022 a las 16:22 |
|
RUGALB
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Asiduo Unido: 21/Julio/2006 Localización: Mexico Estado: Sin conexión Puntos: 432 |
Opciones de entrada
Gracias(0)
|
Amigos, buenas tardes
disculpen la intromisión :) para el tipo de etiquetas "escuela:alumno" ¿cómo puedo adaptar el ejemplo del Maestro Mihura? El XML es así: <?xml version="1.0" encoding="utf-8"?> <cfdi:Comprobante xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www." LugarExpedicion="0000" MetodoPago="PUE" TipoDeComprobante="I" Total="123" Moneda="MXN" Certificado="xxx" SubTotal="00.00" CondicionesDePago="Contado" NoCertificado="000000" FormaPago="03" Sello="XXXXXx" Fecha="2022-01-14T10:45:18" Folio="13" Serie="MM" Version="3.3" xmlns:cfdi="http://www....."> <cfdi:Emisor Rfc="AAAAAA" Nombre="XXXXX" RegimenFiscal="621"></cfdi:Emisor><cfdi:Receptor Rfc="XXXXXX" Nombre="XXXXX" UsoCFDI="G03"></cfdi:Receptor> <cfdi:Conceptos> <cfdi:Concepto ClaveProdServ="43212108" Cantidad="2" ClaveUnidad="H87" Unidad="pieza" Descripcion="Impresora Térmica de Ticket 58mm" ValorUnitario="500.00" Importe="1000.00"> <cfdi:Impuestos> <cfdi:Traslados><cfdi:Traslado Base="000.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="000.00"></cfdi:Traslado></cfdi:Traslados> </cfdi:Impuestos> </cfdi:Concepto> <cfdi:Concepto ClaveProdServ="43201830" Cantidad="1" ClaveUnidad="H87" Unidad="pieza" Descripcion="Disco de Estado Sólido SSD 120GB" ValorUnitario="650.00" Importe="650.00"> <cfdi:Impuestos> <cfdi:Traslados><cfdi:Traslado Base="650" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="000.00"></cfdi:Traslado></cfdi:Traslados> </cfdi:Impuestos> </cfdi:Concepto> <cfdi:Concepto ClaveProdServ="81111809" Cantidad="1" ClaveUnidad="E48" Unidad="servicio" Descripcion="Instalación de Software a Equipo de Cómputo" ValorUnitario="100.00" Importe="100.00"> <cfdi:Impuestos> <cfdi:Traslados><cfdi:Traslado Base="100.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="00.00"></cfdi:Traslado></cfdi:Traslados> </cfdi:Impuestos> </cfdi:Concepto> </cfdi:Conceptos> <cfdi:Impuestos TotalImpuestosTrasladados="0000.00"> <cfdi:Traslados><cfdi:Traslado Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="000.36"></cfdi:Traslado></cfdi:Traslados> </cfdi:Impuestos> <cfdi:Complemento> <tfd:TimbreFiscalDigital xmlns:tfd="http://www....." xsi:schemaLocation="http://www.....xsd" Version="1.1" UUID="000000000" FechaTimbrado="2022-01-14T10:57:01" RfcProvCertif="AAAAAAAAAAA" SelloCFD="XXXXXX" NoCertificadoSAT="000000" SelloSAT="000" /> </cfdi:Complemento> </cfdi:Comprobante> Muy agradecido desde ya por sus comentarios.
Editado por RUGALB - 05/Agosto/2022 a las 18:51 |
|
Saludos desde Toluca, Estado de Mexico "El pesimista se queja del viento, el optimista espera que cambie, el realista ajusta las velas"(William Ward)
|
|
emiliove
Administrador Unido: 16/Junio/2009 Localización: Mexico Estado: Sin conexión Puntos: 5694 |
Opciones de entrada
Gracias(0)
|
Buenas Tardes RUGALB
Por que no inicias un nuevo Hilo y vemos como puedes guardar los tributos de un xml a una tabla o en un formulario donde los desees poner. Saludos.
|
|
RUGALB
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Asiduo Unido: 21/Julio/2006 Localización: Mexico Estado: Sin conexión Puntos: 432 |
Opciones de entrada
Gracias(0)
|
Hola Emilio, muchas gracias, hare lo que indicas. Slaudos :)
|
|
Saludos desde Toluca, Estado de Mexico "El pesimista se queja del viento, el optimista espera que cambie, el realista ajusta las velas"(William Ward)
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |