• 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目录下的InternetXMLTransformProvider!

    http://www.cnblogs.com/toosuo/archive/2007/12/17/1001453.html

  • 相关阅读:
    oracle数据库数据导出
    oracle 数据连接方式
    plsql 建表空间
    java Excel 导入数据库
    python爬虫学习数据分析(连载中)
    python之pip库管理工具pip安装
    数据结构之看病排队系统
    数据结构之顺序串
    数据结构之链队
    数据结构之环形队列
  • 原文地址:https://www.cnblogs.com/findumars/p/5210959.html
Copyright © 2020-2023  润新知