转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
Delphi6/7 中XML 文档的应用         ★★★★

Delphi6/7 中XML 文档的应用

作者:闵涛 文章来源:闵涛的学习笔记 点击数:941 更新时间:2009/4/23 18:39:36

Delphi6/7 中XML 文档的应用


 


XML文档是新一代的Web数据格式。它可以用树的形式储存一切数据。


下面介绍一下TXMLDocument控件的一些用法:


已定义:


XMLDoc: TXMLDocument;


EncoderMIME: TIdEncoderMIME;


DecoderMIME: TIdDecoderMIME;


xn:IXMLNode;


f:TFileStream;


EncoderMIME和DecoderMIME是Indy控件中的Mime工具,用来把所有类型的字符串转换为Mime(Base64)的ASCII码,你用其他的编码方式也可以的,比如:UUE,XXE。


XN是XML文档的树结点。F是文件流。


首先,加载XML文档


  xmldoc.LoadFromFile(‘XML文档的文件名'''');


  xmldoc.Active:=true; //使XML文档变为活动


再次,定位Xn在XML文档中的位置(假设是的二层的第四个节点)


  xn:=xmldoc.Node;


  xn:=xn.ChildNodes.Nodes[1];   //节点数是从零开始的,所以要减一


  xn:=xn.ChildNodes.Nodes[3];


接着,


增加下一级节点


  xn:=xn.AddChild(‘新的节点名字’)


  xn.Text:=’节点的文本内容’


  xn.Attributes[''''节点的第一个属性'''']:=’属性值’


xn.Attributes[''''节点的第二个属性'''']:=’属性值’


  修改节点,(节点的名字是不能改的)


  xn.Text:=’新的文本内容’


  xn.Attributes[''''节点的第二个属性'''']:=’ 新的属性值’


  删除节点Xn


  xn.ParentNode.ChildNodes.Delete(xn.ParentNode.ChildNodes.IndexOf(xn));


利用Xn.Text存放文件,


  f:=TFileStream.Create(''''要存放的文件名'''',fmOpenRead);


  xn.Text:=EncoderMime.Encode(f); //转换格式,文件编码


  f.Free;


解出Xn.Text中的文件,


  f:=TFileStream.Create(‘目标文件名’,fmCreate);


  DecoderMime.DecodeToStream(xn.Text,f);


  f.Free;


最好利用Xn.attribute来增加一个属性来表示文件的编码方式,比如


  xn.Attributes[''''Type'''']=''''Base64''''


这样改上面的两个片段为:


  xn.Attributes[''''Type'''']:=''''Base64'''';


  f:=TFileStream.Create(''''要存放的文件名'''',fmOpenRead);


  xn.Text:=EncoderMime.Encode(f);



  f.Free;


if xn.IsTextElement  //Xn中存在Text


     then if xn.HasAttribute(''''Type'''') then  //Xn中存在属性’Type’


             if xn.Attributes[''''Type'''']=''''Base64'''' then


                begin


                  f:=TFileStream.Create(‘目标文件名’,fmCreate);


                  DecoderMime.DecodeToStream(xn.Text,f);


                  f.Free;


                end;


最后给出一个利用TTreeView来显示XML文档的所有树结构


XMLTree是TTreeView类


procedure TForm1.ReadXMLTree(RootTreeNode:TTreeNode; XMLTreeNode:IXMLNode);


var i:integer; c:TTreeNode;


begin


  for i:=0 to XMLTreeNode.ChildNodes.Count-1 do


    begin


      c:=xmltree.Items.AddChild(RootTreeNode,XMLTreeNode.ChildNodes.Nodes[i].NodeName);


      ReadXMLTree(c,XMLTreeNode.ChildNodes.Nodes[i]);


    end;


end;


使用方法


  ReadXMLTree(nil,xmldoc.Node);


当然要先加载XML文档 J ^_^

至于使用XML文档作为In-memory数据库就要用Delphi6/7的XML Mapping Tool了,先建立一个最简单的XML文档,再用MappingTool生成.XTR文件,用TXMLDataSetProvider作为数据提供者,TdataSet连接,搞个TTable就可以把XML作为数据库用了,详细的请看Delphi6/7的Demos目录下的Internet\XMLTransformProvider!

-------------------------------------------Power by Liu Yang 2002-2-8

/ by LY http://lysoft.7u7.net or http://liuyang.7i24.com


一个利用XML的例子:LY FTP Explorer中的Site Manager文件


可以从我的主页下载。


[Web开发]XML与HTML在语法上的主要区别详解  [系统软件]如何让Expat支持中文XML
[VB.NET程序]vb.net 与 XML 的操作  [VB.NET程序]vb.net读写xml(2)--实现datagrid与xml的沟通(原创…
[VB.NET程序]vb.net 读写xml方法(1)  [VB.NET程序][VB.NET+XML]完成简单程序配置
[VB.NET程序]使用Visual Basic操纵XML文档  [VB.NET程序]XML 简单接口 (SAX2)用Visual Basic 实现的示例
[Delphi程序]Delphi 6 XML映象工具  [Delphi程序]Delphi 6 XML数据绑定
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台