生成一个xml文件的例子:I have used the following convention for the xml file 1. The root name of the xml file is same as that of the table name(In this case country). 
2.   Each record from the table comes in between the tags and 
3.  Each data from the table comes in between the tags and - <country> 
            - <Records> 
                      <Name>Argentina</Name> 
                      <Capital>Buenos Aires</Capital> 
                      <Continent>South America</Continent> 
                      <Area>2777815</Area> 
                      <Population>32300003</Population> 
              </Records> 
                      . 
                      . 
                      . 
   </country> Start a new application and place a Button and a  Table component on the main form.Set the properties of the table component 
as follows.                 DatabaseName : DBDEMOS 
                Name : Table1 
                TableName : country (Remove the extention ".db") 
                Active : True Select Project/Import Type library.This will display the "Import Type Library" dialog. Select  "Microsoft XML,Version 
2.0(version 2.0)" from the list box and then click "Create Unit" Button.This will add MSXML_TLB unit to your project. 
Add MSXML_TLB to the uses clause in the interface portion of your unit. 
Declare the following variables in the var Section               DataList : TStringlist; 
                doc : IXMLDOMDocument; 
                root,child,child1 : IXMLDomElement; 
                text1,text2 : IXMLDOMText; 
                nlist : IXMLDOMNodelist; 
                dataRecord : String; add the following function(makeXml) to your unit.This will generate an XML file by reading data from country 
table(DBDEMOS). function TForm1.makeXml(table:TTable):Integer; 
var 
  i   : Integer; 
  xml,temp : String; 
begin 
  try 
    table.close; 
    table.open; 
    xml  := table.TableName; 
    doc  := CreateOleObject('Microsoft.XMLDOM') as IXMLDomDocument; 
    //Set the root name of the xml file as that of the table name. 
    //In this case "country" 
    root := doc.createElement(xml); 
    doc.appendchild(root); 
    //This while loop will go through the entaire table to generate the xml file 
    while not table.eof do 
    begin 
      //adds the first level children , Records 
      child:= doc.createElement('Records'); 
      root.appendchild(child); 
      for i:=0 to table.FieldCount-1 do 
      begin 
        //adds second level children 
        child1:=doc.createElement(table.Fields[i].FieldName); 
        child.appendchild(child1); 
        //Check field types 
        case TFieldType(Ord(table.Fields[i].DataType)) of 
        ftString: 
        begin 
          if Table.Fields[i].AsString ='' then 
               temp :='null'  //Put a default string 
             else 
               temp := table.Fields[i].AsString; 
        end;         ftInteger, ftWord, ftSmallint: 
        begin 
            if Table.Fields[i].AsInteger > 0 then 
               temp := IntToStr(table.Fields[i].AsInteger) 
             else 
               temp := '0'; 
        end; 
        ftFloat, ftCurrency, ftBCD: 
        begin 
            if table.Fields[i].AsFloat > 0 then 
              temp := FloatToStr(table.Fields[i].AsFloat) 
            else 
               temp := '0'; 
        end; 
        ftBoolean: 
        begin 
            if table.Fields[i].Value then 
              temp:= 'True' 
            else 
              temp:= 'False'; 
        end; 
        ftDate: 
        begin 
            if (not table.Fields[i].IsNull) or 
               (Length(Trim(table.Fields[i].AsString)) > 0) then 
              temp := FormatDateTime('MM/DD/YYYY', 
                             table.Fields[i].AsDateTime) 
            else 
              temp:= '01/01/2000'; //put a valid default date 
        end; 
        ftDateTime: 
        begin 
            if (not table.Fields[i].IsNull) or 
               (Length(Trim(table.Fields[i].AsString)) > 0) then 
              temp := FormatDateTime('MM/DD/YYYY hh:nn:ss', 
                             Table.Fields[i].AsDateTime) 
            else 
              temp := '01/01/2000 00:00:00'; //Put a valid default date and time 
        end; 
        ftTime: 
        begin 
            if (not table.Fields[i].IsNull) or 
               (Length(Trim(table.Fields[i].AsString)) > 0) then 
               temp := FormatDateTime('hh:nn:ss', 
                           table.Fields[i].AsDateTime) 
            else 
               temp := '00:00:00'; //Put a valid default time 
        end; 
      end; 
       // 
       child1.appendChild(doc.createTextNode(temp)); 
      end; 
    table.Next; 
    end; 
    doc.save(xml+'.xml'); 
    memo1.lines.Append(doc.xml); 
    Result:=1; 
  except 
    on e:Exception do 
      Result:=-1; 
  end; 
end; Call the above function in Button1's onclick event procedure TForm1.Button1Click(Sender: TObject); 
begin 
  if makeXml(table1)=1 then 
    showmessage('XML Generated') 
  else 
    showmessage('Error while generating XML File'); 
end;