关于XML文件读取和写入 http://sheng.javaeye.com/blog/771019http://maverick.cnblogs.com/archive/2005/01/12/90459.aspx看了之后还是不懂....谁来说下XML文件读取和写入,关键步骤 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 写那么详细,还不明白,xmldocument,这个组件,就那么几个方法,自己操作一下吧看看 那两个例子已经写得很明白了,给你一个我自己写的:生成目录结构树的XML:function DirectoryToXml(FullPath:string):Boolean;// 根据文件夹创建一个包含它里面所有内容(子文件夹和文件名)的XML文件var Root:IXMLNode; //根节点 DirNode:IXMLNode; //目录节点 FileNode:IXMLNode; //文件节点 OutXMLDOC:TXMLDocument; i:Integer; time:TDateTime; procedure pSearchFile(mPath: string); //查询文件生成xml结构 var vSearchRec:TSearchRec; K:Integer; ItemTemp:IXMLNode; //中转node,用来保存当前目录的父结点 begin K:=FindFirst(mPath+'\*.*',faAnyFile,vSearchRec); while K=0 do begin Application.ProcessMessages; if IsDirOrFile(vSearchRec.Name,vSearchRec.Attr)=1 then begin DirNode:=DirNode.AddChild('Dir'); DirNode.Attributes['Name']:=mPath+'\'+vSearchRec.Name; ItemTemp := DirNode.ParentNode; pSearchFile(mPath+'\'+vSearchRec.Name); DirNode:= ItemTemp; end else if IsDirOrFile(vSearchRec.Name,vSearchRec.Attr)=2 then begin FileNode:=DirNode.AddChild('File'); FileNode.Attributes['Name']:=mPath+'\'+vSearchRec.Name; try FileNode.Attributes['FileSize']:=IntToStr(FileSizeEx(mPath+'\'+vSearchRec.Name)); //文件大小 except on E: Exception do begin Result:=False; Application.MessageBox(PChar(E.Message+#13#10+'The operation is going to disrupt,please click "OK" to exit.'), 'Registry Easy', MB_ICONWARNING); Exit; end; end; //FileNode.Attributes['FtpUser']:=IdFTP1.Username; FileNode.Attributes['ModifiedDate']:=GetFileTime(mPath+'\'+vSearchRec.Name); //文件最后修改时间 FileNode.Attributes['MD5']:=RivestFile(mPath+'\'+vSearchRec.Name); //md5码 end; K:=FindNext(vSearchRec); end; FindClose(vSearchRec); end;begin Result:=True; OutXMLDOC:=TXMLDocument.Create(nil); OutXMLDOC.XML.Clear; OutXMLDOC.Active:=True; OutXMLDoc.Encoding:='utf-8'; Root:=OutXMLDOC.AddChild('Backup'); //添加根节点属性 //root.Attributes['FtpUser']:=IdFTP1.Username; time:=Now; Root.Attributes['time']:=FormatDateTime('yyyy-mm-dd hh:nn:ss',time); DirNode:=Root.AddChild('Dir'); DirNode.Attributes['Name']:=FullPath; pSearchFile(FullPath); OutXMLDoc.SaveToFile('localWordFolder.tsk'); OutXMLDOC:=nil;end; XML是utf 8结构编码的,楼主如果不明白utf 8编码,还是去补补基础吧…… 多线程 如何在主线程中判断子线程是否出现卡死 求思路? 指数平滑三次预测谁做过 谁做过帮忙! 小儿科的问题。。 批处理修改问题 我是菜鸟,各位大哥帮忙解答二个问题? 谁能告诉我, TReportDBGrid是什么控件在哪有下载? 菜鸟的问题--解决后马上送分 怎样在自己的程序中控制widows media player? 在英文NT4中安装SQL SERVER7,在客户端输入汉字后显示为“?”,我的数据库字符集是默认安装 救救我这可怜的人吧! delphi高手请进来好吗? 请教DELPHI窗体创建调用问题! 数据库写入数据和读出数据的时候怎么样防止冲突
function DirectoryToXml(FullPath:string):Boolean;// 根据文件夹创建一个包含它里面所有内容(子文件夹和文件名)的XML文件
var
Root:IXMLNode; //根节点
DirNode:IXMLNode; //目录节点
FileNode:IXMLNode; //文件节点
OutXMLDOC:TXMLDocument;
i:Integer;
time:TDateTime; procedure pSearchFile(mPath: string); //查询文件生成xml结构
var
vSearchRec:TSearchRec;
K:Integer;
ItemTemp:IXMLNode; //中转node,用来保存当前目录的父结点
begin
K:=FindFirst(mPath+'\*.*',faAnyFile,vSearchRec);
while K=0 do
begin
Application.ProcessMessages;
if IsDirOrFile(vSearchRec.Name,vSearchRec.Attr)=1 then
begin
DirNode:=DirNode.AddChild('Dir');
DirNode.Attributes['Name']:=mPath+'\'+vSearchRec.Name;
ItemTemp := DirNode.ParentNode;
pSearchFile(mPath+'\'+vSearchRec.Name);
DirNode:= ItemTemp;
end
else if IsDirOrFile(vSearchRec.Name,vSearchRec.Attr)=2 then
begin
FileNode:=DirNode.AddChild('File');
FileNode.Attributes['Name']:=mPath+'\'+vSearchRec.Name;
try
FileNode.Attributes['FileSize']:=IntToStr(FileSizeEx(mPath+'\'+vSearchRec.Name)); //文件大小
except
on E: Exception do
begin
Result:=False;
Application.MessageBox(PChar(E.Message+#13#10+'The operation is going to disrupt,please click "OK" to exit.'), 'Registry Easy', MB_ICONWARNING);
Exit;
end;
end;
//FileNode.Attributes['FtpUser']:=IdFTP1.Username;
FileNode.Attributes['ModifiedDate']:=GetFileTime(mPath+'\'+vSearchRec.Name); //文件最后修改时间
FileNode.Attributes['MD5']:=RivestFile(mPath+'\'+vSearchRec.Name); //md5码
end;
K:=FindNext(vSearchRec);
end;
FindClose(vSearchRec);
end;begin
Result:=True;
OutXMLDOC:=TXMLDocument.Create(nil);
OutXMLDOC.XML.Clear;
OutXMLDOC.Active:=True;
OutXMLDoc.Encoding:='utf-8';
Root:=OutXMLDOC.AddChild('Backup');
//添加根节点属性
//root.Attributes['FtpUser']:=IdFTP1.Username;
time:=Now;
Root.Attributes['time']:=FormatDateTime('yyyy-mm-dd hh:nn:ss',time);
DirNode:=Root.AddChild('Dir');
DirNode.Attributes['Name']:=FullPath;
pSearchFile(FullPath); OutXMLDoc.SaveToFile('localWordFolder.tsk');
OutXMLDOC:=nil;
end;