Delphi读取XML

  1. unit Unit1;   
  2.   
  3. interface  
  4.   
  5. uses  
  6.    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   
  7.    Dialogs, XMLIntf, XMLDoc, StdCtrls;   
  8.   
  9. type  
  10.    TStudent = Class(TObject)   
  11.   public  
  12.      Name: string;   
  13.      Sex: string;   
  14.      Age: Integer;   
  15.      Phone: string;   
  16.   end;   
  17.    TForm1 = class(TForm)   
  18.      Button1: TButton;   
  19.     procedure FormCreate(Sender: TObject);   
  20.     procedure FormDestroy(Sender: TObject);   
  21.     procedure Button1Click(Sender: TObject);   
  22.   private  
  23.     { Private declarations }  
  24.      FXMLDoc: IXMLDocument;  // XML文档   
  25.      FDocElement: IXMLNode;  // 根节点   
  26.      FList: TList;   
  27.   public  
  28.     { Public declarations }  
  29.   end;   
  30.   
  31. var  
  32.    Form1: TForm1;   
  33.   
  34. implementation  
  35.   
  36. uses Student;   
  37.   
  38. {$R *.dfm}  
  39.   
  40. const  
  41.    XMLString =   
  42. '<?xml version="1.0" encoding="GB2312"?>' +   
  43. '<Students>' +   
  44. '     <Student Sex = "">' +   
  45. '         <Name>文文</Name>' +   
  46. '         <Age>18</Age>' +   
  47. '         <Phone>4745723</Phone>' +   
  48. '     </Student>' +   
  49. '     <Student Sex = "">' +   
  50. '         <Name>喃喃</Name>' +   
  51. '         <Age>17</Age>' +   
  52. '         <Phone>4644563</Phone>' +   
  53. '     </Student>' +   
  54. '</Students>';   
  55.   
  56. procedure TForm1.FormCreate(Sender: TObject);   
  57. begin  
  58.    FXMLDoc := TXMLDocument.Create(nil);   
  59.    FXMLDoc.XML.Text := XMLString;   
  60.    FXMLDoc.Active := True;   
  61.    FList := TList.Create;   
  62.    FDocElement := FXMLDoc.DocumentElement;   
  63. end;   
  64.   
  65. procedure TForm1.FormDestroy(Sender: TObject);   
  66. var  
  67.    i: Integer;   
  68. begin  
  69.    FXMLDoc.Active := False;   
  70.   for i := 0 to Flist.Count - 1 do  
  71.      TStudent(FList.Items[i]).Free;   
  72.    FList.Free;   
  73. end;   
  74.   
  75. procedure TForm1.Button1Click(Sender: TObject);   
  76. var  
  77.    i: Integer;   
  78.    Stu: TStudent;   
  79.    StuNode: IXMLNode;   
  80. begin  
  81.   for i := 0 to FDocElement.ChildNodes.Count - 1 do  
  82.   begin  
  83.      StuNode := FDocElement.ChildNodes[i];   
  84.      Stu := TStudent.Create;   
  85.      Stu.Name := StuNode.ChildValues['Name'];   
  86.      Stu.Sex := StuNode.Attributes['Sex'];   
  87.      Stu.Age := StuNode.ChildValues['Age'];   
  88.      Stu.Phone := StuNode.ChildValues['Phone'];   
  89.      FList.Add(Stu);   
  90.   end;   
  91. end;   
  92.   
  93. end.  

 

你可能感兴趣的:(职场,休闲,Delphi读取XML)