数据集生成Xml 格式文件

//数据集生成Xml 格式文件 function makeXml(Dataset:TADODataSet;XMLRootName:string):Integer; var i : Integer; xml : String; temp:Variant; doc : IXMLDOMDocument; root,child,child1 : IXMLDomElement; a:TFieldType; {函数功能:将Dataset 转换成 XML 格式文件} begin try if Dataset.Active =false then Dataset.Active:=true; xml:=XMLRootName; //doc --> root --> first level(child) --> second level(child1) --> child1 value doc := CoDOMDocument60.Create; // 调用 MS XML 6.0 控件建立 DOC --> IXMLDomDocument3 //设置 xml 根节点 root := doc.createElement(xml); //建立 IXMLDomDocument 的根节点元素 root --> IXMLDOMElement doc.appendchild(root); // 生成 xml 文件过程 //while not table.eof do with DataSet do begin while not eof do begin //添加第一层 节点,Records child:= doc.createElement('Records'); //建立 root 根节点的第一层节点元素 child --> IXMLDOMElement root.appendchild(child); for i:=0 to FieldCount-1 do begin //添加第二层子节点 字段名与值 child1:=doc.createElement(Fields[i].FieldName); //建立 child 第一层节点元素的第二层节点元素 child1 --> IXMLDOMElement child.appendchild(child1); //字段名 //检查字段 类型 ,赋值给 temp case TFieldType(Ord(Fields[i].DataType)) of ftString,ftWideString: begin if Fields[i].AsString ='' then temp :=' ' //Put a default string else temp := Fields[i].AsString; end; ftInteger,ftLargeint,ftWord,ftSmallint: begin if Fields[i].AsInteger > 0 then temp := IntToStr(Fields[i].AsInteger) else temp := '0'; end; ftFloat,ftCurrency,ftBCD: begin if Fields[i].AsFloat > 0 then temp := FloatToStr(Fields[i].AsFloat) else temp := '0'; end; ftBoolean: begin if Fields[i].Value then temp:= True else temp:= False; end; ftDate: begin if (not Fields[i].IsNull) or (Length(Trim(Fields[i].AsString)) > 0) then temp := FormatDateTime('MM/DD/YYYY',Fields[i].AsDateTime) else temp:= '01/01/2000'; //预设日期 end; ftDateTime: begin if (not Fields[i].IsNull) or (Length(Trim(Fields[i].AsString)) > 0) then temp := FormatDateTime('MM/DD/YYYY hh:nn:ss',Fields[i].AsDateTime) else temp := '01/01/2000 00:00:00'; //预设日期时间 end; ftTime: begin if (not Fields[i].IsNull) or (Length(Trim(Fields[i].AsString)) > 0) then temp := FormatDateTime('hh:nn:ss',Fields[i].AsDateTime) else temp := '00:00:00'; //预设时间 end; end; // child1.appendChild(doc.createTextNode(temp)); // 字段名对应的值 end; Next; end; // eof end; // with XMLStr:=doc.xml; //memo1.lines.Append(doc.xml); Result:=1; except on e:Exception do Result:=-1; end; end;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇