PDA

Ver la Versión Completa : Crear un XML a partir de una clase generada de un XSD (XML Data Binding)


agova
19-07-2013, 00:47:31
Hola a todos soy nuevo en la cuetion del XML en delphi y me surge una duda, :confused: como puedo crear un XML a partir de una clase generada con el XML Data Binding, ya agregue la unidad al proyecto pero ahora como le hago para asignar valores a cada uno de los nodos y atributos y para crear el documento XML en si.

Estoy trabajando en Delphi 7.

Saludos y de antemano gracias a todos por su atencion.

agova
19-07-2013, 06:06:11
Ya supe como asignar valores a los nodos y atributos, se agrega la unidad .pas generada con el XML Data Binding y se instancia el objeto, despues solo es accesarlo y asignarle valores directamente

objeto.nodo.atributo:=valor que quiero

ahora solo me queda saber como guardarlo en un archivo XML.

Cabe mencionar que lo que estoy haciendo es Generar la factura Electronica CFDI, a partir del archivo CFDI32.XSD que proporciona el SAT, genero con el XML Data Binding la clase para accesar todos los valores de la factura, ya los tengo capturados de la forma:

CFDI.Version:='3.2'
....
CFDI.Emisor.RFC:='XXXXXXXX'
....
CFDI.Receptor.Nombre:='Fulanito'
....etc hasta dar todos los datos

Pero como les digo ahora no se como guardarlos en el archivo XML, si alguien sabe como se los agradezco y si necesitan ver mi codigo avisenme para publcarlo.

Anusky
26-09-2013, 14:22:56
Estoy en la misma situación que tú, consigo introducir datos usando la estructura que te crea el XML Data Binding pero no doy con como grabar la interface en un fichero XML. He probado con un componente TXMLDocument, haciendo
var
fichero: IXMLDocumentType;
begin

fichero := XML.AddChild('Document');

end;

pero me dice que no vale. A ver si alguien que lo haya hecho nos ayuda. Un saludo!

Anusky
26-09-2013, 14:28:51
Vale lo he encontrado, sólo hay que asignar al principio la estructura al componente TXMLDocument

fichero := GetDocument(XML);

y cuando termines de rellenar la estructura hacer un XML.SaveToFile('nombreFichero.xml');

:)

agova
26-09-2013, 15:14:27
Anisku, Justamente te iba a contestar cuando diste con bola, lo hice de la misma forma que encontraste, tambien estas haciendo algo con factura electronica?

Anusky
26-09-2013, 15:52:02
No, pero también liada con un tema de XML, ¡ya voy viendo la luz al final del tunel!