Extraer Datos de XML y Volcarlos a una Tabla |
Responder ![]() |
Autor | |
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: 393 |
![]() ![]() ![]() ![]() ![]() Enviado: 05/Agosto/2022 a las 20:52 |
Hola Compañeros, buenas tardes.
Necesito Extraer los datos de un fichero XML, con las etiquetas e información correspondiente, basandome en el ejemplo de Mihura que sugiere en este hilo: http://www.mvp-access.com/foro/topic86265_post519739.html intente trabajar en ello pero no mefunciona, quiza sea por la forma en que estan declaradas las etiquetas, en lugar de ser simplemente así; <etiqueta> el fichero que tengo las tiene así: <etiqueta:algo>. No logro hacerlo, alguien me puede dar un poco de luz al respecto por favor. Mi fichero es así: 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. |
|
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: 5541 |
![]() ![]() ![]() ![]() ![]() |
Como te decía tienes que mirar cada atributo y meterlos a una tabla, lo haces revisando nodo por nodo y extrayendo la información.
Como dice el Sr. Mihura primero bajas el xml en un Documento Dom y después revisas cada atributo de cada nodo. Necesitas todos los atributos o solo algunos, la factura tu la generaste, y quieres los datos que no tienes del timbrado o es de otro lado. Puede ser algo así: Private Sub Command() Dim oXml As MSXML2.DOMDocument60 Dim oNodes As IXMLDOMNodeList Dim oNode As IXMLDOMNode Dim i As Long Set oXml = New MSXML2.DOMDocument60 With oXml '.Load "C:\SISAdmon\Sistema Administrativo\CFD\2116ROEJ5804226HATimbrado.xml" .Load "tu Ruta con el archivo como lo de arriba" Set oNodes = .SelectNodes("//*") 'SelectSingleNode For Each oNode In oNodes Debug.Print oNode.nodeName For i = 0 To oNode.Attributes.length - 1 Debug.Print oNode.Attributes(i).nodeName; Tab(30); _ oNode.Attributes(i).NodeValue Next i Next oNode Set oNodes = Nothing End With Set oXml = Nothing End Sub Editado por emiliove - 05/Agosto/2022 a las 23:26 |
|
![]() |
|
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: 393 |
![]() ![]() ![]() ![]() ![]() |
muchísimas gracias por contestar Emilio :)
El fichero XML se genera externamente ya timbrado, se requieren leer todos los datos para poder llevarlos a una tabla y trabajar con esa información. Estoy revisando el código que amablemente colocaste. |
|
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 |