网站建设| 数据库类| 图形图象| 程序设计| 现代办公| 操作系统| 考试认证| 网络技术| 软件工程| 电脑相关| 文学作品
网站开发| 网页制作| 操作系统| 图象图形| 考试认证| 数据库类| 程序设计| 硬件技术| 现代办公| 网络技术| 笑话频道
 
您的位置: 电脑书库首页-> 电脑文摘-> 程序设计-> Delphi/Pascal-> Delphi6中XML文档的应用

Delphi6中XML文档的应用
作者:佚名 来源:InterNet 加入时间:2004-11-25
相关文章
  • XML和现代CGI应用程序
  • 用VB.NET和XPath简化XML导航
  • 将Recordset作为XML保存
  • 使用XMLHTTP发送超长XML表单数据
  • xml中的空格之完全解说
  • XML数据库中几个容易混淆的概念
  • 利用XML开发留言板简单的例子
  • 使用JavaScript访问XML数据
  • XML文件编程
  • XML数据绑定
  • 相关书籍:
  • Java与XML数据绑定
  • 使用Java技术的XML高级开发
  • XML高级编程完整版
  • XML 初学进阶
  • XML轻松学习手册
  • 无废话XML
  • XML实用大全1-18章
  • XML学习指南
  • XML高级编程
  • ASP.NET-XML深入编程技术
  • Delphi6 XML 文档的应用


     


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


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


    已定义:


    XMLDoc: TXMLDocument;


    EncoderMIME: TIdEncoderMIME;


    DecoderMIME: TIdDecoderMIME;


    xn:IXMLNode;


    f:TFileStream;


    EncoderMIMEDecoderMIMEIndy控件中的Mime工具,用来把所有类型的字符串转换为MimeBase64)的ASCII码,你用其他的编码方式也可以的,比如:UUEXXE


    XNXML文档的树结点。F是文件流。


    首先,加载XML文档


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


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


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


      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文档的所有树结构


    XMLTreeTTreeView


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

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


    My email: ly_liuyang_ly@21cn.com


    Home page: http://lyhome.3322.net


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


    可以从我的主页下载。



    [文章录入员:fightter]

    相关文章
  • XML和现代CGI应用程序
  • 用VB.NET和XPath简化XML导航
  • 将Recordset作为XML保存
  • 使用XMLHTTP发送超长XML表单数据
  • xml中的空格之完全解说
  • XML数据库中几个容易混淆的概念
  • 利用XML开发留言板简单的例子
  • 使用JavaScript访问XML数据
  • XML文件编程
  • XML数据绑定
  • 相关书籍:
  • Java与XML数据绑定
  • 使用Java技术的XML高级开发
  • XML高级编程完整版
  • XML 初学进阶
  • XML轻松学习手册
  • 无废话XML
  • XML实用大全1-18章
  • XML学习指南
  • XML高级编程
  • ASP.NET-XML深入编程技术
  • 本站推荐内容

    近期主机类热搜关键词:
    美国服务器 美国服务器租用 海外服务器租用 国外服务器租用

    Delphi/Pascal
    C/C++/VC
    C++Builder
    Basic/VB类
    Delphi/Pascal
    Java编程
    FORTRAN
    其它
    电脑教程阅读排行
    ·DELPHI下的多线程程序设计(...
    ·Delphi与Excel的亲密接...
    ·Delphi实现串口通信的常用的...
    ·Delphi中初始化.Ini文件...
    ·Delphi中用于读写(I/O)...
    ·谈谈Delphi中的类和对象
    ·Delphi编译错误中文手册
    ·Delphi中关于TApplic...
    ·OPENGL图形程序设计
    ·SQL的基本操作