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;