** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Extraer Datos de XML y Volcarlos a una Tabla
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Extraer Datos de XML y Volcarlos a una Tabla

 Responder Responder
Autor
Mensaje
RUGALB Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 21/Julio/2006
Localización: Mexico
Estado: Sin conexión
Puntos: 393
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita RUGALB Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Extraer Datos de XML y Volcarlos a una Tabla
    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)
Arriba
emiliove Ver desplegable
Administrador
Administrador


Unido: 16/Junio/2009
Localización: Mexico
Estado: Sin conexión
Puntos: 5541
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita emiliove Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 05/Agosto/2022 a las 23:04
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
Arriba
RUGALB Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 21/Julio/2006
Localización: Mexico
Estado: Sin conexión
Puntos: 393
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita RUGALB Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: Ayer a las 00:50
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)
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable