扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:佚名 来源:论坛 2007年11月1日
关键字:
Root : IXMLNode; //指向XML根结点 Parent_Node: IXMLNode; //指向学生结点 Child_node : IXMLNode; //指向学生的子结点 Student : TStudent; //存单个学生信息 List : TList; //存学生列表 i : integer; //循环变量 |
List := TList.Create; //初始化列表 InXMLDoc.LoadFromFile('Input.xml'); //调入Input.xml文件 Root := InXMLDoc.DocumentElement; //取XML文件的根结点,即“<学生花名册>” Parent_Node := Root.ChildNodes.First; //使Parent_Node指向学生结点 while (Parent_Node <> nil) do //循环取多个学生,可再多加几个学生信息测试 begin if (Parent_Node.NodeName = '学生') then //判断是否为学生结点 begin Student := TStudent.Create; //新建一个学生的结构信息 Student.sex := Parent_Node.Attributes['性别']; //取学生的性别属性 Child_Node := Parent_Node.ChildNodes.First; //使Child_Node指向该学生的第一个子结点信息 while (Child_Node <> nil) do //循环取学生的各个子各点 begin if (Child_Node.NodeName = '姓名') then //判断是否为姓名结点 Student.name := Child_Node.Text //取姓名结点的值,取于name字段中 else if (Child_Node.NodeName = '年龄') then //此行起后四行与前两行类似 Student.age := StrToInt(Child_Node.Text) else if (Child_Node.NodeName = '电话') then Student.phone := Child_Node.Text; Child_Node := Child_Node.NextSibling; //顺序取下一个学生的子结点信息 end; List.Add(Student); //把一个学生信息加入列表 end; Parent_Node := Parent_Node.NextSibling; //顺序取下一个学生信息 end; |
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; //最后释放保存临时学生信息的列表 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者