• delphi创建和读取xml(xml简单操作举例)


    有关许多接口,会需要通过xml进行数据交换,弄个例子,方便参考

    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,XMLDoc,XMLIntf, StdCtrls;

    type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Memo1: TMemo;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(Sender: TObject);
    var
    Xml: TXMLDocument;
    Rootnode,node : IXMLNode;
    begin
    Xml := TXMLDocument.Create(nil);
    // Xml.LoadFromFile('aaa.xml');
    try
    //加入版本信息 ‘<?xml version="1.0" encoding="GB2312" ?> ’
    Xml.Active := True;
    Xml.Version := '1.0';
    Xml.Encoding :='GB2312';

    Rootnode := Xml.CreateNode('CIF_INFO');
    Xml.DocumentElement := Rootnode;
    node := Xml.CreateNode('TXNCODE');
    Rootnode.ChildNodes.Add(node);
    node.Text := '420001';
    node := Xml.CreateNode('RESPCODE');
    Rootnode.ChildNodes.Add(node);
    node.Text := '0000';
    node := Xml.CreateNode('CIFID');
    Rootnode.ChildNodes.Add(node);
    node.Text := '0030209728';
    node := Xml.CreateNode('RESCODE');
    Rootnode.ChildNodes.Add(node);
    node.Text := '0000';
    node := Xml.CreateNode('RESMSG');
    Rootnode.ChildNodes.Add(node);
    node.Text := '';

    Xml.SaveToFile('aaa.xml');
    xml.Active := False;
    showmessage('创建成功!');
    finally
    Xml.Free;
    end;
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    var
    Xml: TXMLDocument;
    Rootnode,node : IXMLNode;
    nodelist:IXMLNodeList;
    b,c,str :string;
    i:Integer;
    begin
    Xml := TXMLDocument.Create(Application);


    try
    Xml.LoadFromFile('aaa.xml');
    Xml.Active := True;

    Rootnode := Xml.DocumentElement;
    nodeList :=Rootnode.ChildNodes;
     for i:=0 to nodelist.Count-1 do
        begin
          if  Rootnode.ChildNodes[i].NodeValue = null then
             begin
               c:='空';
             end
             else
             begin
               c:= Rootnode.ChildNodes[i].NodeValue;
             end;
          str:=str+c+#13#10;
        end;
    //b := Rootnode.ChildNodes[ 'CIFID'].NodeValue;
    Memo1.Lines.Add(str);
    xml.Active := False;
    finally
    Xml.Free;
    end;
    end;
    end.

  • 相关阅读:
    条款04:确定对象在使用前已经被初始化
    条款06:若不想使用编译器自动生成的函数,就应该明确拒绝
    计算机操作系统之死锁的原因和必要条件
    条款10:令operator=返回一个reference to *this
    条款02:尽量以const,enum,inline代替#define
    条款11:在operator=处理自我赋值
    计算机操作系统之进程与线程
    堆排序
    NodeJS For Windows
    我常用的linux命令
  • 原文地址:https://www.cnblogs.com/cnajian/p/2226262.html
Copyright © 2020-2023  润新知