1.问题描述
我从XML文件中取出相关的节点列表,把这个节点列表已结构体的形式保存到TList对象中去。
2.数据结构定义
2.1XML文件结构
<xml>
<root>
<userinfo>
<logininfo>
<loginname>ceshiyong</loginname>
<logintime>2007-1-1<logintime>
</logininfo>
<logininfo>
<loginname>ceshiyong1</loginname>
<logintime>2007-2-1<logintime>
</logininfo>
</userinfo>
</root>
2.2结构体定义
Code
//结构体指针类型
plogininfo=^loginInfo;
//结构体
loginInfo = record
logintime:string;
loginname:string;
end;
3.测试代码
Code
function testAddToList()
var list:TList;
I: Integer;
var nodelist:TXmlNodeList;
var loginpointer:plogininfo;
var xmldoc:TNativeXml;
begin
list:=TList.Create;
nodelist:= TXmlNodeList.Create;
//获取XML文件节点 列表
actions.Doc.Root.NodesByName('userInfo',nodelist);
for I := 0 to nodelist.Count - 1 do
begin
if assigned(nodelist.Items[I].NodeByName('logininfo')) then
begin
new(loginpointer);
//赋值方法2
//loginpointer.logintime:= nodelist.Items[I].NodeByName('logininfo').ReadString('logintime');
// loginpointer.loginname:= nodelist.Items[I].NodeByName('logininfo').ReadString('loginname');
list.Add(loginpointer);
//赋值方法1
plogininfo(list[i])^.logintime:=nodelist.Items[I].NodeByName('logininfo').ReadString('logintime');
plogininfo(list[i])^.loginname:=nodelist.Items[I].NodeByName('logininfo').ReadString('loginname');
end;
end;
end;