Código:
* Ejemplo para pegar el complemento de terceros al xml de un CFDI
* Se muestra tambien como extraer o convertir el XML a una cadena
local h, hx, lcxml, lcxmlterceros, lc, hnodoTerceros
set proc to libfacturista
init_libfacturista()
lcxml = 'paraterceros.xml' &&CFDI sin el complemento
*xml del concepto con el complemento, por ejemplo:
* '<cfdi:Concepto><cfdi:ComplementoConcepto><terceros:PorCuentadeTerceros>...</terceros:PorCuentadeTerceros></cfdi:ComplementoConcepto></cfdi:Concepto>'
lcxmlterceros = filetostr('terceros.xml')
h = 0
h = cfdi_xml_cargar(h,lcxml)
if h <> 0
* Insertamos en el nodo Conceptos, el xml nuevo
hx = xml_insert(cfdi_raiz(h), "cfdi:Comprobante/cfdi:Conceptos", lcxmlterceros, 0, 0)
if hx <> 0
* Guardamos el xml nuevo a otro archivo
* Solo para proposito de visibilidad, se ha puesto el ultimo parametro a 1 (decorado),
* se recomienda que sea 0
if cfdi_xml_guardar(h,'cfditerceros.xml',0) <> 0
* Convertimos a una cadena nuestro XML para mostrarlo
lc = xml_serialize(h,1)
messagebox(lc)
* Ahora mostramos la cadena XML del complemento
hnodoTerceros = xml_node(cfdi_raiz(h), "cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto/cfdi:ComplementoConcepto/terceros:PorCuentadeTerceros")
if hnodoTerceros <> 0
lc = xml_serialize(hnodoTerceros,1)
messagebox(lc)
endif
else
messagebox("Error al guardar: "+ cfdi_error(h))
endif
else
messagebox("No se pudo insertar el XML: "+ cfdi_error(h))
endif
else
messagebox("No se pudo cargar el archivo: "+ cfdi_error(h))
endif
clear dlls
set proc to