Error con namespaces (programacion Delphi)

Todo lo que no cabe en los demas foros........
Czar
Mensajes: 24
Registrado: Mar Mar 29, 2011 9:55 am

Error con namespaces (programacion Delphi)

Mensajepor Czar » Mar Feb 15, 2022 10:25 am

Hola buen día

Estoy migrando mi app a la versión 4.0 del CFDI, pero tengo un problema. Después de crear y llenar mi XML, veo que en algunos nodos me coloca el xmlns y no sé por qué y tampoco he podido quitarlos. Este es una muestra del XML como lo deja:

Código: Seleccionar todo

<cfdi:Conceptos>

<Concepto xmlns="http://www.sat.gob.mx/cfd/4" ClaveProdServ="51181501" NoIdentificacion="7503004908875" Cantidad="1" ClaveUnidad="H87" Unidad="Pieza" Descripcion="ACARBOSA TAB 50MG C/30 ALPHARMA" ValorUnitario="45.720" Importe="45.72" Descuento="0.00"/>

<Concepto xmlns="http://www.sat.gob.mx/cfd/4" ClaveProdServ="42142609" NoIdentificacion="7506022301758" Cantidad="1" ClaveUnidad="H87" Unidad="Pieza" Descripcion="JERINGA 3 ML 21G X 32MM C/100 PZ VERDE (SENSIMEDICAL) C/AGUJA" ValorUnitario="194.310" Importe="194.31" Descuento="0.00">


Quise eliminar el xmlns mediante código con la siguiente línea, pero no funciona:

Código: Seleccionar todo

concepto[x].Attributes['xmlns'] := '';


Código: Seleccionar todo

<cfdi:Conceptos>

<Concepto xmlns="" ClaveProdServ="51181501" NoIdentificacion="7503004908875" Cantidad="1" ClaveUnidad="H87" Unidad="Pieza" Descripcion="ACARBOSA TAB 50MG C/30 ALPHARMA" ValorUnitario="45.720" Importe="45.72" Descuento="0.00"/>

<Concepto xmlns="" ClaveProdServ="42142609" NoIdentificacion="7506022301758" Cantidad="1" ClaveUnidad="H87" Unidad="Pieza" Descripcion="JERINGA 3 ML 21G X 32MM C/100 PZ VERDE (SENSIMEDICAL) C/AGUJA" ValorUnitario="194.310" Importe="194.31" Descuento="0.00">


Alguna idea/sugerencia?

De antemano muchas gracias, ojalá puedan ayudarme.

Saludos

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Error con namespaces (programacion Delphi)

Mensajepor Dado » Mar Feb 15, 2022 11:21 am

Si, es un poco especial el manejo, y depende de la version de Delphi

Como algunas cosas las seguimos usando en Delphi 7 y otras en Delphi XE2, usamos lo siguiente al agregar la informacion al nodo :

Código: Seleccionar todo

      {$IF CompilerVersion >= 20}
      with Conceptos.AddChild('cfdi:Concepto') as IXMLComprobante_Conceptos_Concepto do
      {$ELSE}
      with Conceptos.Add do   <<<--este es el que seguramente estas usando
      {$IFEND}
      begin
         ClaveProdServ := '01010101';
         NoIdentificacion := 'ART01';
         Cantidad := '1';
         ClaveUnidad := 'EA';
         ...etc...
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

Czar
Mensajes: 24
Registrado: Mar Mar 29, 2011 9:55 am

Re: Error con namespaces (programacion Delphi)

Mensajepor Czar » Mar Feb 15, 2022 11:50 am

Hola Dado

Es correcto, estoy utilizando XE2 y en mi código utilizo el ADD en vez de AddChild

Código: Seleccionar todo

  with Conceptos do begin
      Add;
      Concepto[idxP].ClaveProdServ     := _producs[idxP].clave;


En general así es como tengo mi código actualmente.


Volver a “Otros”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado