delphi 学习 xml文件读取

这篇博客展示了如何使用Delphi读取XML文件并将其内容转换为Access数据库的记录。通过调用TNativeXml和ADO组件,实现XML目录的遍历,节点值的读取,并创建SQL插入语句将数据存入数据库。
摘要由CSDN通过智能技术生成

这是一个xml转成access数据的demo

有些还没整理完。希望高手改善!

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, ExtCtrls, StdCtrls, Grids, Menus, Db, ADODB;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    MainMenu1: TMainMenu;
    open_N1: TMenuItem;
    daoru_N2: TMenuItem;
    select_N3: TMenuItem;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Edit1: TEdit;
    Edit2: TEdit;
    Memo1: TMemo;
    ADO: TADOConnection;
    ADOQuery1: TADOQuery;
    Memo2: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure daoru_N2Click(Sender: TObject);
  private

    { Private declarations }
  public
  procedure WriteRecordfields(nodesname,nodesvalue:string ;const n:integer); //形成sql插入语句
  procedure create_table(nodesname:string;const n:integer);
   function GetTempPathFileName: string;
  procedure lvadd(const path1:string);
  procedure readxml(const filename:string);
  function create_mdb(const fnames:string):boolean;
  function   CompactDatabase(AFileName:string):boolean;
  procedure conning_mdb(sql:string);
  procedure bianli_create(const filename:string);
    { Public declarations }
  end;

var
  Form1: TForm1;
  path:string;
  fname:string;
   strtxt :Tstringlist;
implementation
   uses nativexml,Comobj, SYSTEMD7;

{$R *.DFM}

procedure TForm1.lvadd(const path1: string);//  获取XML目录
var
     //   i:integer;
        Sr:TsearchRec;
       // findNode:TTreeNode;
       // name:Array[n] of string;

begin
       Path:=path1;
       //stringgrid1.rowcount:=0;
       if Path[length(path)]<>'/'then
                path:=path+'/*.*'
       else
                path:=path+'*.*';
        //with stringgrid1 do
       // begin
        if findfirst(path,faanyfile,sr)=0 then
        begin
         repeat
            if (sr.Attr and  fadirectory) =sr.Attr then
            if (sr.name='.') or (sr.name='..') then
             begin
                continue;
             end
            else
             begin
                 path:=path1+sr.Name;
                 readxml(path);
             end;
              path:=path1+sr.Name;
                 readxml(path);
              until findnext(sr)<>0;
              findclose(sr);
           end;
      //end;
end;
procedure TForm1.readxml(const filename: string);   //遍历读取节点值
var
  ADoc      : TNativeXml;
  LRootNode : TXmlNode;

  procedure ProcessNode(ANode: TXmlNode);
  begin
    Memo1.Lines.Add(Format('%s=%s', [ANode.Name, ANode.ValueAsString])

Delphi是一种编程语言和集成开发环境,它提供了读写XML文件的功能。在Delphi中,可以使用TXMLDocument组件来处理XML文件。 要读取XML文件,首先需要在代码中创建TXMLDocument对象,并通过其LoadFromFile方法将XML文件加载到内存中。加载完成后,可以通过访问TXMLDocument对象的DocumentElement属性来获取XML文件的根元素。使用DocumentElement属性返回的是一个IXMLNode接口类型的对象,可以通过其子节点和属性来访问XML文件中的数据。 对于写入XML文件,同样需要创建TXMLDocument对象,并通过其LoadFromFile方法加载或创建一个XML文件。然后,可以通过代码中的赋值或添加子节点的方式来设置XML文档的结构和数据。最后,使用TXMLDocument对象的SaveToFile方法将修改后的XML文档保存到磁盘上。 在读写XML文件时,可能还需要使用到IXMLNode接口的其他方法和属性。例如,使用ChildNodes属性可以获取当前节点的所有子节点,使用Attributes属性可以获取当前节点的所有属性,使用Text属性可以获取或设置当前节点的文本内容。 除了基本的读写功能,Delphi还提供了其他用于处理XML的组件和库函数。例如,可以使用XPath来定位XML文件中的节点,使用XSLT进行XML数据的转换,使用XMLDataBinding创建与XML结构对应的对象模型等等。 总的来说,Delphi提供了丰富和方便的功能来读写XML文件,使开发人员可以轻松地处理XML数据。无论是对于简单的XML文件操作还是复杂的XML数据处理,都可以通过Delphi的强大的XML处理功能来实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值