Hola a todos!
Estoy intentando leer los nodos de un archivo XML «factura» usando el comando «Archivo XML a Dicccionario» del modulo ReadXML sin exito!, esto lo intento con la ayuda de los videos del curso Rocketbot Suite (Level 2) en su seccion 3 – XML , siento que estoy haciendolo mal , les comparto el XML y como intento usar el modulo ReadXML y poder recibir ayuda y orientacion:
ARCHIVO XML :
<?xml version=»1.0″ encoding=»utf-8″?>
<cfdi:Comprobante Version=»3.3″ Folio=»15901″ Fecha=»2020-10-27T10:56:57″ FormaPago=»28″ Certificado=»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» NoCertificado=»00001000000408737277″ SubTotal=»8400.00″ Descuento=»0.00″ Moneda=»MXN» TipoCambio=»1″ Total=»8400.00″ TipoDeComprobante=»I» MetodoPago=»PUE» LugarExpedicion=»91020″ Sello=»ULq6YdKn2N18ZH106Wc2eUsFy+aCWPL74XvLAS/IhXtcwGwS9ubrr0N8X189jarwfN/e9uWRY8Pb14Ri4cnlabhSRYBV0CCWvww3aWiBZukDK5I2KlRHtxE8Fp+1QoCpdtchw0Nq/h+HXf2GjJPoDOzHaacjskULRtsadxVqwymc4valffQoJGJwyZuVL+xJTPl4OtXnyNePnSP80EaSviZJ+F7TNAKJ8okJMQUOzQ41OdGBe/GG1aPUpGkmy9mK/a6Au2WYe+HTom8l7Mvg4hj0eJZaiRCyoh/aw62VfBsG4K5GAmPt5pH+GL15TxES2jW8y7WBHB1HjqGVnYATgQ==» xsi:schemaLocation=»http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd» xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance» xmlns:cfdi=»http://www.sat.gob.mx/cfd/3″>
<cfdi:EmisorRegimenFiscal=»601″Nombre=»POLIDENT XALAPA S. C.»Rfc=»PXA070626DB9″/>
<cfdi:ReceptorNombre=»ENGELBERT ZAMUDIO PONZZI»Rfc=»ZAPE700128HI8″UsoCFDI=»D01″/>
<cfdi:Conceptos>
<cfdi:ConceptoDescuento=»0.00″Importe=»8400.00″ValorUnitario=»8400.00″Descripcion=»SERVICIO DE CONSULTA Y TRATAMIENTO DENTAL – FOLIO 59314, 59315″ClaveUnidad=»ACT»Cantidad=»1.00″ClaveProdServ=»85122000″NoIdentificacion=»0004″Unidad=»ACT – Actividad»>
<cfdi:Impuestos>
<cfdi:Traslados>
<cfdi:TrasladoImporte=»0.00″TasaOCuota=»0.000000″TipoFactor=»Tasa»Impuesto=»002″Base=»8400.00″/>
</cfdi:Traslados>
</cfdi:Impuestos>
</cfdi:Concepto>
</cfdi:Conceptos>
<cfdi:ImpuestosTotalImpuestosTrasladados=»0.00″>
<cfdi:Traslados>
<cfdi:TrasladoImporte=»0.00″TasaOCuota=»0.000000″TipoFactor=»Tasa»Impuesto=»002″/>
</cfdi:Traslados>
</cfdi:Impuestos>
<cfdi:Complemento>
<tfd:TimbreFiscalDigitalVersion=»1.1″RfcProvCertif=»FLI081010EK2″UUID=»FF5931C6-A5BA-46D9-8550-FF21E3AFC01C»FechaTimbrado=»2020-10-27T10:58:55″SelloCFD=»ULq6YdKn2N18ZH106Wc2eUsFy+aCWPL74XvLAS/IhXtcwGwS9ubrr0N8X189jarwfN/e9uWRY8Pb14Ri4cnlabhSRYBV0CCWvww3aWiBZukDK5I2KlRHtxE8Fp+1QoCpdtchw0Nq/h+HXf2GjJPoDOzHaacjskULRtsadxVqwymc4valffQoJGJwyZuVL+xJTPl4OtXnyNePnSP80EaSviZJ+F7TNAKJ8okJMQUOzQ41OdGBe/GG1aPUpGkmy9mK/a6Au2WYe+HTom8l7Mvg4hj0eJZaiRCyoh/aw62VfBsG4K5GAmPt5pH+GL15TxES2jW8y7WBHB1HjqGVnYATgQ==»NoCertificadoSAT=»00001000000504317583″SelloSAT=»UKDD2NyGMQeCHLR9SQtsp0jqx0pGAJcGpzfD1FbQ1lbGTli/DSSkmR9dDNK5Y3mESq+pcJ3LxDUfi//CSLWZ6asNiQE2fmaY/KAEG+oVWWmIwfzdJ2v9xNw+6hFRH74RWVV3UO9syG4MU7uMHzYxhgRifUqIf0fARdFVptXeivtDjTrgzUrq+8ESfKm3Et+n8Wc56FexZFK82ApFt5gYEzY9yd0sey3V1kbOvsaGer9xyHa8oTS+Mjs8BrNqifNMzIqi5m2p1MW9ACc74zYnSj6dyjgxbHNZq6jYNC5AerwMxVKGlam9PpHBaPYlKDDOQ46LpfaXJnDQixckW7gHrg==»xmlns:tfd=»http://www.sat.gob.mx/TimbreFiscalDigital»xsi:schemaLocation=»http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd»/>
</cfdi:Complemento>
</cfdi:Comprobante>
Uso de Modulo ReadXML
Primero abro dicho XML con la instruccion «Abrir XML a Diccionario» y se guarda en una variable «resXML» de la siguiente forma:
{‘cfdi:Comprobante’: {‘@xmlns:xsi’: ‘http://www.w3.org/2001/XMLSchema-instance’, ‘@xsi:schemaLocation’: ‘http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd’, ‘@LugarExpedicion’: ‘93600’, ‘@MetodoPago’: ‘PUE’, ‘@TipoDeComprobante’: ‘I’, ‘@Total’: ‘500.00’, ‘@Moneda’: ‘MXN’, ‘@Certificado’: ‘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’, ‘@SubTotal’: ‘500.00’, ‘@NoCertificado’: ‘00001000000500048559’, ‘@FormaPago’: ’03’, ‘russellotz’: ‘O4oWZz6FzVKghPPerCWZd7MQvSrxeRRFQqLNLsYvE8MOjLvijCH/JW9493piv9jYDKCdKLEQgEiLr269ZSONlQM0Io5FmkAZlYc7B40z/bATYbNODBMmpY13DVMvsHlTb/sVegKILCFT6VEO7j/2gCXypX3YBZMdCEexeYc8C8NKZeitTEVrJ168bNOWQ8dNFeChh49EZGJ6xz2omqhj3AGw/O+a05/amj6gETABV0mjzqh6OzuXYeQ236huPQlY+/i7I1LZsW4L5gxpTsEAN3vfN4WTfC2MRVRzfh2mKF/E815uwUeMyZOXA6hmPq8AvRuNJlUwF7IvoNVBBJPmQQ==’, ‘@Fecha’: ‘2020-08-31T15:11:51’, ‘@Version’: ‘3.3’, ‘@xmlns:cfdi’: ‘http://www.sat.gob.mx/cfd/3’, ‘cfdi:Emisor’: {‘@Rfc’: ‘RICC7510134G9’, ‘@Nombre’: ‘CIRA ELENA RINCON CRESPO’, ‘@RegimenFiscal’: ‘612’}, ‘cfdi:Receptor’: {‘@Rfc’: ‘ZAPE750124AN7’, ‘@Nombre’: ‘ENGELBERT ZAMUDIO PONZZI’, ‘@UsoCFDI’: ‘D01’}, ‘cfdi:Conceptos’: {‘cfdi:Concepto’: {‘@ClaveProdServ’: ‘85122000’, ‘@Cantidad’: ‘1’, ‘@ClaveUnidad’: ‘E48’, ‘@Unidad’: ‘N/A’, ‘@Descripcion’: ‘ATENCION DENTAL’, ‘@ValorUnitario’: ‘500.00’, ‘@Importe’: ‘500.00’}}, ‘cfdi:Complemento’: {‘tfd:TimbreFiscalDigital’: {‘@xmlns:tfd’: ‘http://www.sat.gob.mx/TimbreFiscalDigital’, ‘@xsi:schemaLocation’: ‘http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd’, ‘@Version’: ‘1.1’, ‘@UUID’: ‘51107443-0964-4F9B-BEFB-2BE11B63AD3D’, ‘@FechaTimbrado’: ‘2020-08-31T15:14:15’, ‘@RfcProvCertif’: ‘SAT970701NN3’, ‘russellotzCFD’: ‘O4oWZz6FzVKghPPerCWZd7MQvSrxeRRFQqLNLsYvE8MOjLvijCH/JW9493piv9jYDKCdKLEQgEiLr269ZSONlQM0Io5FmkAZlYc7B40z/bATYbNODBMmpY13DVMvsHlTb/sVegKILCFT6VEO7j/2gCXypX3YBZMdCEexeYc8C8NKZeitTEVrJ168bNOWQ8dNFeChh49EZGJ6xz2omqhj3AGw/O+a05/amj6gETABV0mjzqh6OzuXYeQ236huPQlY+/i7I1LZsW4L5gxpTsEAN3vfN4WTfC2MRVRzfh2mKF/E815uwUeMyZOXA6hmPq8AvRuNJlUwF7IvoNVBBJPmQQ==’, ‘@NoCertificadoSAT’: ‘00001000000504465028’, ‘russellotzSAT’: ‘bqc/0/MAmtACqF11Es49WXylw5AxVR7oyd6+7eDccmuiNOdq99qe6DSnd0lVAME6zVtN6U6GORTTb2jsRnZt7ZEbqgnQjFO3Lv4OTjdkQ0SiF8uyFeQUxBdLFeipfq+oy/FXpup2RbM1dzWsDplJlWkD41r5vFN749fWAl7/1VWoMHw3bQJV2Hq58FnWAdnCiJ518ql2wx8pD4pUZiKw4bUDvwqwFc7enTEPH3QPljRiRRPTBgOrGlzdxFNp1lxsRnhjzhy5D+7PtFFvsgL0pn6l284I9U9CAtDsBL5fv5yhec0VjJuNNuSJ+s1ApBWE89ggSVYI3hWKBSyignq3Iw==’}}}}
Instruccion For
Despues procedo a crear un For Loop para el Elemento itereable que es mi variable resXML:
{resXML}[‘cfdi:Comprobante’][‘cfdi:Emisor’]
Obteniendo un mensaje de retorno de: 0 , no se que este haciendo mal , peor no logro recorrer el XML y obtener los valores de sus nodos!.
Espero puedan ayudarme y de antemano agradezco el soporte dedicado este caso!.
Saludos cordiales
Engelbert Zamudio Ponzzi
Hola engelzamudio,
Yo genere una solucion temporal, desconozco lo del curso aun no llego a ese nivel, pero lo que veo es que el la factura 3.3 en la documentacion no se obtiene los Arroba @, pero a el si le aparecen los corchetes al inicio y final del contenido del nodo.
Por lo visto el modulo requiere el codigo Json
Lo que yo realice fue extraer todo el xml, despues tomar en especifico el nodo, luego remplace los @ por nada, seguidamente agrege los corchetes al inicio y final. obteniendo el resultado
Es una solución temporal, espero le sirva
Saludos!
Buen dia engelzamudio,
No se si ya lograste resolverlo, pero yo encontre una solucion temporal, en el modulo la informacion la trabajan con una factura 3.3 a lo que vi, al instructuro ya le arroja la informacion en formato json, yo intente simular el proceso extrayendo el comprobante y emisor que pides
Lo que hice fue, eliminar los arrobas @ y agregar corchetes al inicio y final del contenido
Asi ya el loop lee la informacion y extrae los datos.
Espero le sirva, saludos!
Hola engelzamudio,
usé el diccionario que compartiste y me obtiene el valor correctamente.
Esto estoy usando: {resXML}[«cfdi:Comprobante»][«cfdi:Emisor»]
Es probable que si copias y pegas mi respuesta, tengas un error de sintaxis, si ocurre, reemplaza las comillas por una escrita por ti