Jackson,
Segue em anexo um exemplo simples de ClientDataset e XMLDocument.
unit Uxml;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, xmldom, XMLIntf, StdCtrls, msxmldom, XMLDoc, DB, DBClient, Grids,
DBGrids;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
ClientDataSet1: TClientDataSet;
DataSource1: TDataSource;
ClientDataSet1CODCLI: TStringField;
ClientDataSet1NOME: TStringField;
ClientDataSet1CNPJ: TStringField;
ClientDataSet1FONE: TStringField;
XMLDocument1: TXMLDocument;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Nodo: IXMLNode;
begin
XMLDocument1.Active := True;
//Limpa os Nos do XML
XMLDocument1.ChildNodes.Clear;
//Versao do xml
XMLDocument1.Version := '1.0';
//Codificação do xml
XMLDocument1.Encoding := 'UTF-8';
//root do xml
XMLDocument1.AddChild('XML');
//Cria o Nó
XMLDocument1.DocumentElement.AddChild('VERS');
//Pega a referencia do nó para criar os elementos
Nodo := XMLDocument1.DocumentElement.ChildNodes['VERS'];
//Cria os elementos do Nó
Nodo.AddChild('VER').NodeValue := '1.0';
Nodo.AddChild('DATA').NodeValue := '10/09/2009';
ClientDataSet1.First;
while not ClientDataSet1.Eof do
begin
XMLDocument1.DocumentElement.AddChild('CLIENTE');
Nodo := XMLDocument1.DocumentElement.ChildNodes['CLIENTE'];
Nodo.AddChild('CODCLI').NodeValue := ClientDataSet1CODCLI.AsString;
Nodo.AddChild('NOME').NodeValue := ClientDataSet1NOME.AsString;
Nodo.AddChild('CNPJ').NodeValue := ClientDataSet1CNPJ.AsString;
Nodo.AddChild('FONE').NodeValue := ClientDataSet1FONE.AsString;
ClientDataSet1.Next;
end;
XMLDocument1.SaveToFile('C:\ExemploXML.xml');
ShowMessage('Processo finalizado!!!');
end;
end.
Espero que te ajude.