将一个结构体或数组容器的内容生成到XML文件中。
结构体定义:
struct data /*定义结构体*/
{
int year,month,day;
} ;
struct stu /*定义结构体*/
{
char name[20];
long num;
struct data birthday; /*嵌套的结构体类型成员*/
} ;
生成XML的方法:传入Stu的参数指针
void CreateMyXml(stu* students)
{
CMarkup xml;
xml.SetDoc("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
xml.AddElem("MyXml");
int i;
for(i=0;i<sizeof(students);i++)/*采用指针法输出数组元素的各成员*/
{
xml.IntoElem();
xml.AddElem("Student");
xml.AddAttrib("name",students[i].name);
xml.AddAttrib("num",students[i].num);
xml.AddAttrib("year",students[i].birthday.year);
xml.AddAttrib("month",students[i].birthday.month);
xml.AddAttrib("day",students[i].birthday.day);
//printf("\n%d----Outputname,number,year,month,day\n",i+1);
////printf("%20s%10ld%10d//%d//%d\n",(p+i)->name,(p+i)->num, (p+i)->birthday.year,(p+i)->birthday.month,(p+i)->birthday.day);
//printf("%20s%10ld%10d//%d//%d\n",student[i].name,student[i].num, student[i].birthday.year,student[i].birthday.month,student[i].birthday.day);
xml.OutOfElem();
}
xml.Save("D:\\MyXml.xml");
}
调用时先构造数组(或者已有某个集合):
struct stu /* *p,*/student[4]=
{
{"liying",1,1978,5,23},
{"wangping",2,1979,3,14},
{"libo",3,1980,5,6},
{"xuyan",4,1980,4,21}
};
调用:
CreateMyXml(student);
生成的文件如下: