⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 commondata.h

📁 一个基于SAX分析方法的XML文档解析函数包
💻 H
字号:
#ifndef CommonData_H
#define CommonData_H

#include <stdio.h>

/* Define the type of XML_Char and XML_LChar to process the information in
 unicode UTF-16 model and UTF-8 model by the predefined conditon. */
//begin
#define XML_UNICODE
#ifdef  XML_UNICODE
typedef unsigned short XML_Char;
typedef char XML_LChar;
#define STRLEN		wcslen
#define STRCPY		wcscpy
#define STRCAT		wcscat
#define STRCMP		wcscmp
#define JTEXT(x)	L##x
#else
typedef char XML_Char;
typedef char XML_LChar;
#define STRLEN		strlen
#define STRCPY		strcpy
#define STRCAT		strcat
#define STRCMP		strcmp
#define JTEXT(x)	x
#endif 
//end
#ifndef _BOOL
#define _BOOL  int
#define TRUE  1
#define FALSE 0
#endif

#define XML_FILE_NAME		0
#define XML_FILE_STREAM		1	
#define XML_URL				2

#define ANSI				0
#define UNICODE_			1
#define UTF_8				2/*EF BB BF*/
#define UTF_16_L			3/*FE FF*/
#define UTF_16_B			4/*FF FE*/
#define GB_2312				5
#define UNICODE_B	6

typedef void* Pxml_parser;
typedef void* Patrributes;

/*Define the common length of the string.*/
#define STR_LENGTH 50

/*Define the enumaration of the errors which perhaps come forth in running.*/
enum XML_Error{
	XML_SUCCESS,
	ADD_ATTRI_ERROR// when add pairs of char*, out of memory	
};

/**
Functions assert, the functions which is left to implement by users.
*/
typedef void (*XML_StartElementHandler)(void* user_data,
							 const XML_Char* name,
							 const void* attributes
							 );
typedef void (*XML_EndElementHandler)(void* user_data,
							   const XML_Char* name,
							   const void* attributes
							   );
typedef void (*XML_CharacterDataHandler)(void* user_data,
										 const XML_Char* name,
										 int len,
										 _BOOL cData);
typedef void (*XML_StartDocumentHandler)(void* user_data,										 
										 const void* attributes
										 );
typedef void (*XML_EndDocumentHandler)(void* user_data);
typedef void (*XML_CommentHandler)(const XML_Char* comment);
typedef void (*XML_InstructionHandler)();
typedef void (*XML_ParserErrorHandler)(void* user_data,
									   const char* error);
typedef void (*XML_DeclareHandler)(void* user_data,
								   const void* attributes
								   );
typedef int (*DoParse)(Pxml_parser parser);

typedef struct{
	void * userData;
	XML_StartDocumentHandler startDocumentHandler;
	XML_EndDocumentHandler   endDocumentHandler;
	XML_StartElementHandler  startElementHandler;
	XML_EndElementHandler    endElementHandler;
	XML_CharacterDataHandler characterDataHandler;
	XML_ParserErrorHandler   parserErrorHandler;
	XML_CommentHandler       commentHandler;
	XML_InstructionHandler   instructionHandler;
	XML_DeclareHandler       declareHandler;

	DoParse doParse;
		
} XML_Parser;
typedef XML_Parser* PXML_Parser;

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -