C++ Markup.cpp的 CMarkup生成XML文件

将一个结构体或数组容器的内容生成到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);


生成的文件如下:





猜你喜欢

转载自blog.csdn.net/glmushroom/article/details/80682307