leer nodo tfd de un cfdi xml
Hola a todos, alguien sabe como puedo leer el nodo tfd de un comprobante fiscal digital de México.
Lo que estoy buscando es obtener el valor UUID que esta en ese nodo. Ya logre leer los demas valores del archivo xml usando xml data binding y un documento xmldocument pero no logro accesar el nodo tfd en particular Ejemplo del nodo: <tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" FechaTimbrado="2017-03-01T14:00:38" UUID="BD9FF401-FXB9-11E6-8B61-00166D014007" noCertificadoSAT="00001000000403557578" selloSAT="XK/wZ07qqTewD+2/eWO/p8S/RIkpRdmxWL/z+T71KPgdMtBg9vGDLDF7nkRVOzWcS+XAYhvpk1FD2nOxr+/5XgijTKNbArvoW/JroP6nsGrj4kndNe1wh+pv9iQVHXInob7DLPw03KEMWPjTEm2Oa/e4e5l0BPKNrdwBMYY3LT4AcOuU30ilF7Q5fPiFYt0JSVx0CS/h3JtzhLthuttUrjiEKnGQqs5Sh8jKfsDVjnfxMFZDeFWp+5TtV7+F9o6Z+iYpcBGNUVFc/IZ3+/JMUmCp7uSZj5po5Zs0aQN+kmzft3m6TiiUQEvL3+vKWCUhzb6SoA0vxsdroCrclAbWL4Hg==" selloCFD="VQWrJlCa5u96NfNgHmImrz2eIGWXr/TD8KJDC3aH/IRH0JnrGA1XAsQre1spHH9NfxJe9QkVXk6JX2wwE8iLcG4YPz/nxC2mO8mU8IC+J5Wk/QzhoQhNTB0iGepOx8l5sQRYZPpaHjfI0xy3cpxBuW0qAvBy3bRiuQG5Vgri6hc=" version="1.0" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/TimbreFiscalDigital/TimbreFiscalDigital.xsd"/> De antemano muchas gracias y saludos |
Que tal.
Probablemente esto te sirva:
|
Hola, es exactamente lo que estoy buscando peor no logre que funcionara el código.
La variable IXMLTimbreFiscalDigital no la reconoce! Hay alguna otra unidad que hay que registrar? Muchas gracias por tu ayuda |
Te paso el código de la unidad TimbreFiscalDigital:
|
Muchisimas gracias, me pongo a hacer pruebas inmediatamente!
Saludos |
Cita:
|
Sigo sin lograr leer el UUID, me sale el siguiente error:
--------------------------- Debugger Exception Notification --------------------------- Project Sube_xml.exe raised exception class EAccessViolation with message 'Access violation at address 004056F1 in module 'Sube_xml.exe'. Read of address C35B5E01'. --------------------------- Algún otro norte que me puedas dar Muchas gracias y saludos |
Hola, solo falta crear la instancia del objeto XMLDocument1 o simplemente agrega a tu formulario un componente TXMLDocument de la paleta Intenet (comentas la línea donde se define la variable XMLDocument1 )
// XMLDocument1: TXMLDocument;
|
Si tengo el XMLDocument1 en el formulario, ya revise de nuevo todo y sigue mandando el eaccess violation.
Voy a seguir intentandole a ver si encuentro la falla Nuevamente muchas gracias por tu ayuda |
Ya encontraste la solucion ya que yo tambien tengo el mismo problema
|
Con delphi nunca pude, lo solucione muy fácil con visualstudio
Saludos |
yo lo logre pero lo hice de la manera arcaica separando cadenas si le interesa con gusto se los comparto
|
Cita:
Muchas gracias y saludos |
Pasame tu email para enviartelo
|
Por favor, leed nuestra guía de estilo, gracias.
Punto 14: No solicitar respuestas por email, estas son contrarias a la filosofía de compartir conocimiento del Club. |
Aquí encontré la solución: https://github.com/bambucode/tfacturaelectronica
Los programadores de bambucode son unos fregones. Saludos |
Hola, entré buscando respuesta a esto y la encontré de una manera diferente.
Cita:
Hola, corrijo... para que funcione en la linea que dice: Cita:
Debe decir
Siempre y cuando esté timbrado el CFDI... Al menos a mi me sirve desde hace tiempo |
Muchas gracias, lo voy a probar.
Saludos |
Hola de nuevo
Quizás a muchos no les funcionó mi última solución y pues hasta yo le encontré que falla cuando hay más complementos como pagos.
Así que traigo otra solución ojalá definitiva... Dónde dice: Código:
XMLDocument1.Xml.Text := recibo.Complemento.ChildNodes.FindNode('tfd:TimbreFiscalDigital', '').Xml; Debe ser Quizás a muchos no les funcionó mi última solución y pues hasta yo le encontré que falla cuando hay más complementos como pagos. Así que traigo otra solución ojalá definitiva... Dónde dice: XMLDocument1.Xml.Text := recibo.Complemento[0].ChildNodes.FindNode('tfd:TimbreFiscalDigital', '').Xml; No lo he terminado de probar, pero la idea la saqué de aquí: https://stackoverflow.com/questions/...nodes-findnode Viene una explicación sobre el namespace (no se me había ocurrido así tal como dice) de que no lo encuentra con findnode por ser diferente al namespace del documento que ("cfdi" en la factura y en el complemento de timbrado es "cfd", mientras que en los pagos donde tengo problemas es "pagos10") Saludos de nuevo... |
La franja horaria es GMT +2. Ahora son las 00:36:53. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi