Delphi 读写XML文件方式

unit UCreateXML;//delphi 写xml文件方式

interface

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

implementation

procedure CreateXML();
var
  ixd: IXmlDocument;
  RootNode: IXmlNode;
  RangeNode: IXmlNode;
  DataNode: IXmlNode;
  FileDir,FileName:string;
begin
  ixd := NewXmlDocument();
  try
    ixd.Encoding := 'UTF-8';
    RootNode := ixd.AddChild('RootDatas');
    RangeNode:= RootNode.AddChild('DataRange');
    DataNode := RangeNode.AddChild('Name');
    DataNode.Text := 'zhang san';
    DataNode := RangeNode.AddChild('Sex');
    DataNode.Text := 'male';
 
    //node.Attributes['id'] := 1;
    //node.Attributes['level'] := '1';
    //node.Text := 'HAHA';
    FileDir:=ExtractFilePath(ParamStr(0)) + 'XML\';
    FileName:=FileDir+'aaa.xml';
    ixd.SaveToFile(FileName);
  finally
    ixd := nil;
  end;
 
end;

end.
unit UXmlRead; //XML读取方式


interface


uses Windows, xmldom, XMLIntf, msxmldom, XMLDoc, Classes, SysUtils, ActiveX,DB,
 ADODB;



type
  Rec_XMLData = record
    Name, Sex : string;
  end;


  TSearchXMLFile = class(TObject)
  private
  protected
  public
    function GetAllFiles(Dir: string): TStrings;
  end;


  TGetXMLFileData = class(TObject)
  private
  public
    function GetXMLData(FileName: string): Rec_XMLData;
  end;



implementation


function TSearchXMLFile.GetAllFiles(Dir: string): TStrings;
var
  FSearchRec: TSearchRec;
  FileList: TStrings;
  FindResult: Integer;
begin
  if Dir[length(Dir)] <> '\' then
    Dir := Dir + '\';
  FileList := TStringList.Create;
  FindResult := FindFirst(Dir + '*.xml', faAnyFile + faDirectory, FSearchRec);
  try
    while FindResult = 0 do
    begin
      FileList.Add(LowerCase(Dir + FSearchRec.Name));
      FindResult := FindNext(FSearchRec);
    end;
  finally
    FindClose(FSearchRec);
  end;
  Result := FileList;
end;


function TGetXMLFileData.GetXMLData(FileName: string): Rec_XMLData;
var
  FXMLDoc: IXMLDocument;
  XMLNode: IXMLNode;
  RootNode: IXMLNode;
  RangeNode: IXMLNode;
  //DataNode: IXMLNode;
  i: integer;
  XMLData: Rec_XMLData;
begin
  FXMLDoc := TXMLDocument.Create(nil);
  FXMLDoc.LoadFromFile(fileName);
  FXMLDoc.Active := true;
  RootNode := FXMLDoc.DocumentElement;


  // for  i:=0 to XMLNode.ChildNodes.Count-1 do
  i := 0;
  begin
    RangeNode:= RootNode.ChildNodes[I];
    XMLData.SerialNo :=RangeNode.ChildValues['Name'];
    XMLData.cphmcd := RangeNode.ChildValues['Sex'];
  end;
  result := XMLData;
  FXMLDoc.Active:=False;
end;




end.

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、付费专栏及课程。

余额充值