到這兒,所有的學生信息都已存到List列表裡面了,讀者可以跟蹤代碼測試。
下面我們把List裡的臨時學生信息存到Output.XML文件裡,代碼如下:
OutXMLDoc.Active := true; //激活OutXMLDoc,自動初始化空的XML文檔
OutXMLDoc.Encoding := 'GB2312'; //設置字符集
Root := OutXMLDoc.AddChild('學生花名冊'); //建根結點
for i := 0 to List.Count - 1 do //循環取各個學生信息
begin
Student := List.Items[i]; //順序取一個學生信息
if (Student <> nil) then
begin
Parent_Node := Root.AddChild('學生'); //根結點後添加一個學生結點
Parent_Node.Attributes['性別'] := Student.sex; //給學生結點設置性別屬性
Child_Node := Parent_Node.AddChild('姓名'); //學生結點後添加一個姓名結點
Child_Node.Text := Student.name; //設置姓名的文本值
Child_Node := Parent_Node.AddChild('年齡'); //此行起後四行與前兩行類似
Child_Node.Text := IntToStr(Student.age);
Child_Node := Parent_Node.AddChild('電話');
Child_Node.Text := Student.phone;
end;
end;
OutXMLDoc.SaveToFile('Output.xml'); //把組織好的XML文檔存於Output.XML文件中
OutXMLDoc.Active := false; //鈍化(關閉)OutXMLDoc
List.Free; //最後釋放保存臨時學生信息的列表
好了,看看Input.xml和Output.XML內容是不是一樣。是不是很簡單呢?其實在C++ Builder也有相同的組件,只需將Pascal語法轉換成C++語法,上面的代碼就完全可以用了。