Delphi中使用XML绑定来操作XML文件
XML文件从前几年一出现,就非常流行,很多软件中都支持把数据保存为XML格式。
XML之所以这么受欢迎,因为它是一个非常简单的并且又是结构化的ASCII文本语言。XML文件的这种特性,使得任何人和任何程序都能很方便的读懂它。
不过XML文件也流行了这么多年了,我却一直没有使用过它,因为:简单一些的数据,我习惯使用ini或自定义一种格式来保存;而复杂或者大量的数据,显然更适合使用数据库来保存。
直到最近写一个程序时,才不得不用到它。
下面就是我写程序时,用到的一些XML文件的编程方法
我用的Delphi还是几年前的Delphi6,刚好Delphi的这个版本开始支持XML文件。
我使用的是Delphi6中的XML绑定来操作XML文件。
首先,我要操作的XML为stock.xml,它是一个关于股票方面的文件,内容如下:
<?xml version="1.0" encoding="gb2312"?> <StockList> <StockItem Name="股票名称1" Code="股票代码1">股票例子1</StockItem> </StockList>
在主菜单上选择File New->Other,然后在仓库中选择XML Data Binding,会启动Delphi的XML绑定向导。
这个向导有三页,在第一页中指定stock.xml
第二页显示了一些树结构和节点数据类型,这里可以修改编码(比如修改前缀)和数据类型映射
第三页显示生成的类和相应接口,Delphi会将这些类和接口生成一个.pas文件,保存它,例如我保存为stock.pas
绑定到这里就完成了,下面就是如何使用Delphi生成的这些类和接口了,也很简单!
在主窗口的uses段中加入stock.pas,并放上一个TXMLDocument控件(在internet页)XMLDocument1,将它的FileName指定为stock.xml
下面的代码取得xml第一只股票的信息: var StockList:IXMLStockListType; StockItem:IXMLStockItemType; begin StockList:=GetStockList(XMLDocument1); StockItem:=StockList.Get_StockItem(0); Memo1.Lines.Add('Name:'+StockItem.Name); Memo1.Lines.Add('Code:'+StockItem.Code); Memo1.Lines.Add('Stock:'+StockItem.Text); end;
增加一只股票的信息: var StockList:IXMLStockListType; begin StockList:=GetStockList(XMLDocument1); with StockList.Add do begin Name:='股票名称2'; Code:='股票代码2'; Text:='股票例子2'; end; XMLDocument1.SaveToFile('stock.xml');//保存更改 end;
删除最后一只股票的信息: var StockList:IXMLStockListType; begin StockList:=GetStockList(XMLDocument1); StockList.Delete(StockList.Count-1); XMLDocument1.SaveToFile('stock.xml');//保存更改 end;
改变第一只股票的信息: var StockList:IXMLStockListType; StockItem:IXMLStockItemType; begin StockList:=GetStockList(XMLDocument1); StockItem:=StockList.Get_StockItem(0); StockItem.Name:=StockItem.Name+'A'; StockItem.Code:=StockItem.Code+'A'; StockItem.Text:=StockItem.Text+'A'; XMLDocument1.SaveToFile('stock.xml'); end;
建立一个新的xml文件,在其中增加一只股票的信息,并保存为stock2.xml var StockList:IXMLStockListType; begin StockList:=GetStockList(XMLDocument1); with StockList.Add do begin Name:='股票名称1'; Code:='股票代码1'; Text:='股票例子1'; end; XMLDocument1.Encoding:='gb2312'; XMLDocument1.SaveToFile('stock2.xml'); end;
这就是Delphi为我们提供的XML数据绑定功能,用它来操作XML文件很方便,也很强大。