minixml2.9在vs2012与vs2010下的简单使用 minixml2.9在vs2012与vs2010下的简单使用



minixml2.9在vs2012与vs2010下的简单使用

首先下载minixml源码

http://www.msweet.org/

minixml中文文档

http://blog.csdn.net/bluesonic/article/details/3887143

使用vs2012或者vs2010打开vcnet文件夹下的mxml.sln


若版本较高,则进行升级


根据需要的配置(debug or release),生成对应的解决方案


拷贝生成的mxml1.dll,mxml1.lib以及原有的mxml.h


新建项目,将刚刚拷贝的文件添加到项目中


测试代码

  1. #include "mxml.h"  
  2. #include<string.h>  
  3. #include<stdio.h>  
  4. #include<stdlib.h>  
  5.   
  6. int main()  
  7. {  
  8.     FILE *fp;  
  9.     mxml_node_t *tree,*node;  
  10.       
  11.     printf("Label1.prt\n");  
  12.     fp = fopen("Label1.prt","r");  
  13.     tree = mxmlLoadFile(NULL,fp,MXML_TEXT_CALLBACK);  
  14.     fclose(fp);  
  15.     printf("Loop traversal :\n");  
  16.     for(node = mxmlFindElement(tree,tree,NULL,NULL,NULL,MXML_DESCEND);  
  17.         node != NULL; node = mxmlFindElement(node,tree,NULL,NULL,NULL,MXML_DESCEND)){  
  18.             printf("Element name:%s\n",node->value);  
  19.             if(strcmp(node->value.opaque,"AreaSize") == 0){  
  20.                 printf("    Height:%s,Width=%s\n",mxmlElementGetAttr(node,"Height"),mxmlElementGetAttr(node,"Width"));  
  21.             }else if(strcmp(node->value.opaque,"ObjectList")==0){  
  22.                 printf("    count:%s\n",mxmlElementGetAttr(node,"Count"));  
  23.             }else if(strcmp(node->value.opaque,"zOrder")==0){  
  24.                 printf("    zOrder:%d\n",node->child->value.integer);  
  25.             }else if(strcmp(node->value.opaque,"Type")==0){  
  26.                 printf("    Type:%s\n",node->child->value.text.string);  
  27.             }else if(strcmp(node->value.opaque,"Start")==0){  
  28.                 printf("    X=%s,Y=%s,order=%s\n",mxmlElementGetAttr(node,"X"),mxmlElementGetAttr(node,"Y"),mxmlElementGetAttr(node,"order"));  
  29.             }else if(strcmp(node->value.opaque,"End")==0){  
  30.                 printf("    X=%s,Y=%s,order=%s\n",mxmlElementGetAttr(node,"X"),mxmlElementGetAttr(node,"Y"),mxmlElementGetAttr(node,"order"));  
  31.             }else if(strcmp(node->value.opaque,"Color")==0){  
  32.                 printf("    Color:%s\n",node->child->value.text.string);  
  33.             }else if(strcmp(node->value.opaque,"PenWidth")==0){  
  34.                 printf("    PenWidth:%s\n",node->child->value.text.string);  
  35.             }else if(strcmp(node->value.opaque,"FillColor")==0){  
  36.                 printf("    FillColor:%s\n",node->child->value.text.string);  
  37.             }else if(strcmp(node->value.opaque,"Name")==0){  
  38.                 printf("    Name:%s\n",node->child->value.text.string);  
  39.             }  
  40.     }  
  41.   
  42.     printf("\nSearch traversal :\n");  
  43.     node = mxmlFindElement(tree,tree,"AreaSize",NULL,NULL,MXML_DESCEND);  
  44.     printf("AreaSize:\n Height=%s,Width=%s\n",mxmlElementGetAttr(node,"Height"),mxmlElementGetAttr(node,"Width"));  
  45.     node = mxmlFindElement(tree,tree,"ObjectList",NULL,NULL,MXML_DESCEND);  
  46.     printf("    ObjectList:Count:%s\n",mxmlElementGetAttr(node,"Count"));  
  47.     node = mxmlFindElement(tree,tree,"zOrder",NULL,NULL,MXML_DESCEND);  
  48.     printf("    zOrder:%d\n",node->child->value.integer);  
  49.     node = mxmlFindElement(tree,tree,"Type",NULL,NULL,MXML_DESCEND);  
  50.     printf("    Type:%s\n",node->child->value.text.string);  
  51.     node = mxmlFindElement(tree,tree,"Start",NULL,NULL,MXML_DESCEND);  
  52.     printf("    Start:X=%s,Y=%s,order=%s\n",mxmlElementGetAttr(node,"X"),mxmlElementGetAttr(node,"Y"),mxmlElementGetAttr(node,"order"));  
  53.     node = mxmlFindElement(tree,tree,"End",NULL,NULL,MXML_DESCEND);  
  54.     printf("    End:X=%s,Y=%s,order=%s\n",mxmlElementGetAttr(node,"X"),mxmlElementGetAttr(node,"Y"),mxmlElementGetAttr(node,"order"));  
  55.     node = mxmlFindElement(tree,tree,"Color",NULL,NULL,MXML_DESCEND);  
  56.     printf("    Color:%s\n",node->child->value.text.string);  
  57.     node = mxmlFindElement(tree,tree,"PenWidth",NULL,NULL,MXML_DESCEND);  
  58.     printf("    PenWidth=%s\n",node->child->value.text.string);  
  59.     node = mxmlFindElement(tree,tree,"FillColor",NULL,NULL,MXML_DESCEND);  
  60.     printf("    FillColor:%s\n",node->child->value.text.string);  
  61.     node = mxmlFindElement(tree,tree,"Name",NULL,NULL,MXML_DESCEND);  
  62.     printf("    Name:%s\n",node->child->value.text.string);  
  63.   
  64.     system("pause");  
  65.   
  66.     return 0 ;  
  67. }  
#include "mxml.h"
#include<string.h>
#include<stdio.h>
#include<stdlib.h>

int main()
{
    FILE *fp;
    mxml_node_t *tree,*node;
	
	printf("Label1.prt\n");
	fp = fopen("Label1.prt","r");
	tree = mxmlLoadFile(NULL,fp,MXML_TEXT_CALLBACK);
	fclose(fp);
	printf("Loop traversal :\n");
	for(node = mxmlFindElement(tree,tree,NULL,NULL,NULL,MXML_DESCEND);
		node != NULL; node = mxmlFindElement(node,tree,NULL,NULL,NULL,MXML_DESCEND)){
			printf("Element name:%s\n",node->value);
			if(strcmp(node->value.opaque,"AreaSize") == 0){
				printf("	Height:%s,Width=%s\n",mxmlElementGetAttr(node,"Height"),mxmlElementGetAttr(node,"Width"));
			}else if(strcmp(node->value.opaque,"ObjectList")==0){
				printf("	count:%s\n",mxmlElementGetAttr(node,"Count"));
			}else if(strcmp(node->value.opaque,"zOrder")==0){
				printf("	zOrder:%d\n",node->child->value.integer);
			}else if(strcmp(node->value.opaque,"Type")==0){
				printf("	Type:%s\n",node->child->value.text.string);
			}else if(strcmp(node->value.opaque,"Start")==0){
				printf("	X=%s,Y=%s,order=%s\n",mxmlElementGetAttr(node,"X"),mxmlElementGetAttr(node,"Y"),mxmlElementGetAttr(node,"order"));
			}else if(strcmp(node->value.opaque,"End")==0){
				printf("	X=%s,Y=%s,order=%s\n",mxmlElementGetAttr(node,"X"),mxmlElementGetAttr(node,"Y"),mxmlElementGetAttr(node,"order"));
			}else if(strcmp(node->value.opaque,"Color")==0){
				printf("	Color:%s\n",node->child->value.text.string);
			}else if(strcmp(node->value.opaque,"PenWidth")==0){
				printf("	PenWidth:%s\n",node->child->value.text.string);
			}else if(strcmp(node->value.opaque,"FillColor")==0){
				printf("	FillColor:%s\n",node->child->value.text.string);
			}else if(strcmp(node->value.opaque,"Name")==0){
				printf("	Name:%s\n",node->child->value.text.string);
			}
	}

	printf("\nSearch traversal :\n");
	node = mxmlFindElement(tree,tree,"AreaSize",NULL,NULL,MXML_DESCEND);
	printf("AreaSize:\n	Height=%s,Width=%s\n",mxmlElementGetAttr(node,"Height"),mxmlElementGetAttr(node,"Width"));
	node = mxmlFindElement(tree,tree,"ObjectList",NULL,NULL,MXML_DESCEND);
	printf("	ObjectList:Count:%s\n",mxmlElementGetAttr(node,"Count"));
	node = mxmlFindElement(tree,tree,"zOrder",NULL,NULL,MXML_DESCEND);
	printf("	zOrder:%d\n",node->child->value.integer);
	node = mxmlFindElement(tree,tree,"Type",NULL,NULL,MXML_DESCEND);
	printf("	Type:%s\n",node->child->value.text.string);
	node = mxmlFindElement(tree,tree,"Start",NULL,NULL,MXML_DESCEND);
	printf("	Start:X=%s,Y=%s,order=%s\n",mxmlElementGetAttr(node,"X"),mxmlElementGetAttr(node,"Y"),mxmlElementGetAttr(node,"order"));
	node = mxmlFindElement(tree,tree,"End",NULL,NULL,MXML_DESCEND);
	printf("	End:X=%s,Y=%s,order=%s\n",mxmlElementGetAttr(node,"X"),mxmlElementGetAttr(node,"Y"),mxmlElementGetAttr(node,"order"));
	node = mxmlFindElement(tree,tree,"Color",NULL,NULL,MXML_DESCEND);
	printf("	Color:%s\n",node->child->value.text.string);
	node = mxmlFindElement(tree,tree,"PenWidth",NULL,NULL,MXML_DESCEND);
	printf("	PenWidth=%s\n",node->child->value.text.string);
	node = mxmlFindElement(tree,tree,"FillColor",NULL,NULL,MXML_DESCEND);
	printf("	FillColor:%s\n",node->child->value.text.string);
	node = mxmlFindElement(tree,tree,"Name",NULL,NULL,MXML_DESCEND);
	printf("	Name:%s\n",node->child->value.text.string);

	system("pause");

    return 0 ;
}

以上为本人对于minixml的粗浅见解,错漏之处,敬请指出

本人测试minixml代码及英文指南,可自行下载,如果需要的话

http://download.csdn.net/detail/twinkling_z/9437519

猜你喜欢

转载自blog.csdn.net/qq_25408423/article/details/80651523