假如我们有下面这样的xml文件:
张三18
张三18
张三18
张三18
张三18
张三18
张三18
文件中记录了所有学生的信息,每一个学生的信息包含在节点student中,信息有名字name和年龄age。我们现在需要做的是,加载这个xml文件, 然后将所有学生信息加载到内存使用。至于要如何显示,那就看你怎么用了。我们建立一个结构体类型,存储学生的信息,结构体定义如下:
typedef struct
{
string name;
int age;
}STUDENT;
定义结构体可以方便存储一个人的信息,然后所有人的信息就存入一个结构体数组就可以了。这是很普遍的做法,千万不要想着用二维数组哦,不然太麻烦了。我们这里用结构体抵消了一维,简化了数据的使用。
在《C++快速实现xml文件的xml节点读写》中,我已经提供了快速读写xml单个节点值的方法的代码。那么这里我们将读取xml列表数据。创建xml文件,请阅读《C++中使用XML文件:生成XML文件》。
我们的思路是,按照名称读取节点,相同名称的节点就形成一个节点列表,然后我们得到节点列表的长度,然后循环遍历节点。在节点下分别有几个子节点,我们读 取出来这些子节点的数据,然后存入结构体变量中,然后再将结构体变量存入数组中。如果不确定数据的大小,可以使用STL的vector容器,当然我们也推 荐使用vector,使用起来非常简单,和数组一样