Página 1 de 1

Como unir o pegar dos XML (Addendas)

Publicado: Vie Oct 22, 2010 11:15 am
por Dado
Si tienen necesidad de crear una addenda les puede ser util este tip:

Yo lo que hago es tener un XML principal, es decir el CFD.

Muy aparte en otro apartado de mi programa genero OTRO XML independiente, que represente la Addenda que necesito.

Asi pues tengo por ejemplo

CFD principal

Código: Seleccionar todo

<Comprobante>
   <Emisor rfc="abc090909qw3" etc/>
   <Conceptos/>
   etc
</Comprobante>
Addenda

Código: Seleccionar todo

<Datos>
   <Remision Numero="12344"/>
   <ORden de compara>
   etc
</Datos>
EN LAS RUTINAS QUE VENDO EN MERCADO LIBRE la instruccion para pegar la addenda al CFD principal es muy simple :

Código: Seleccionar todo

	FacturaEForm.CFD.Addenda.ChildNodes.Add(Addenda); //Addenda es de tipo TXMLDoc;
Y entonces quedaria asi:

Código: Seleccionar todo

<Comprobante>
   <Emisor rfc="abc090909qw3" etc/>
   <Conceptos/>
   etc
   <Addenda>
      <Datos>
      <Remision Numero="12344"/>
      <ORden de compara>
      etc
      </Datos>
   <Addenda/>
</Comprobante>
Nota que el tag <Addenda> se crea automatico.

Re: Como unir o pegar dos XML (Addendas)

Publicado: Sab Nov 06, 2010 12:39 pm
por EJSG
Hola Dado, de casualidad tendras por ahi un ejemplo en Delphi para agregar la addenda al XML? Adicionalmente una pregunta, la addenda no se agrega en la cadena original, verdad? Muchas gracias por todo tu apoyo.

Re: Como unir o pegar dos XML (Addendas)

Publicado: Sab Nov 06, 2010 2:45 pm
por Dado
EJSG escribió:Hola Dado, de casualidad tendras por ahi un ejemplo en Delphi para agregar la addenda al XML? Adicionalmente una pregunta, la addenda no se agrega en la cadena original, verdad? Muchas gracias por todo tu apoyo.
No, no tengo ejemplo en Delphi.

Por otro lado, la addenda no interviene en la formacion de la cadena original. Incluso puedes sellar primero tu XML y despues agregar la addenda.

Re: Como unir o pegar dos XML (Addendas)

Publicado: Lun Dic 13, 2010 9:52 am
por anibalbg
Hola dado oyes si tienes la addenda en texto como la unes al xml

Re: Como unir o pegar dos XML (Addendas)

Publicado: Lun Dic 13, 2010 10:03 am
por Dado
anibalbg escribió:Hola dado oyes si tienes la addenda en texto como la unes al xml
Mi recomendacion es que conviertas ese texto a un nodo y asi lo pegas.

Por ejemplo (Nota importante, este codigo NO ESTA PROBADO, asi que no copies y pegues, es solo "la punta de la madeja" para que tu termines de desarrollarlo)

var
addenda : string;
DocNodo : TXMLDocument; //componente de la paleta de internet

addenda := '<miaddenda><bla /><blah2 /></miaddenda>'; // quiero enteder que tu addenda la haces "a mano", sobre una string
Docnodo.XML.Text := addenda;
DocNodo.Active := true;

Ahora en DocNodo tienes tu Addenda ya como un XML real y no solo una string, con esto ya puedes pegar nodos

FacturaElectronica.Addenda.ChildNodes.Add(DocNodo);

Mmmh, me quede pensando, si no te funciona la instruccion anterior es posible que necesites especificar el nodo raiz de la siguiente forma

FacturaElectronica.Addenda.ChildNodes.Add(DocNodo.DocumentElement);