Score
0
Watch 7 Star 36 Fork 10

xfwangqiang / simple_xmlCMIT

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or download
xml_node.h 6.46 KB
Copy Edit Web IDE Raw Blame History
xfwangqiang authored 2017-06-05 12:08 . 创建simple_xml的代码
/*
* xml.h
*
* Created on: 2017年5月22日
* Author: xfwangqiang
*/
/*========================================================*
* 程序修改记录:
* <版本号> <修改日期>, <修改人员>: <修改功能概述>
* V1.0.0 2017-06-05 xfwangqiang 创建
*========================================================*/
#ifndef XML_NODE_H_
#define XML_NODE_H_
// 定义XML节点的类型枚举,根据DOM来定义的
enum xmlnode_type {
ELEMENT_NODE = 1,
ATTRIBUTE_NODE,
TEXT_NODE,
CDATA_SECTION_NODE,
ENTITY_REFERENCE_NODE,
ENTITY_NODE,
PROCESSING_INSTRUCTION_NODE,
COMMENT_NODE,
DOCUMENT_NODE,
DOCUMENT_TYPE_NODE,
DOCUMENT_FRAGMENT_NODE,
NOTATION_NODE,
};
// 定义读取函数的原型
typedef int (*xml_get_func)( void *this, char *buffer );
typedef int (*xml_get_func1)( void *this , char *name, char *buffer );
// 定义XML节点对象的数据结构
struct xmlnode {
char *name; // 节点的名字
char *value; // 节点的值
enum xmlnode_type type; // 节点的类型
struct xmlnode *father; // 父节点
struct xmlnode *next; // 下一个兄弟节点对象
struct xmlnode *prev; // 上一个兄弟节点对象
struct xmlnode *child; // 第一个子节点
xml_get_func getname; // 得到节点名字方法
xml_get_func getvalue; // 得到节点值方法
};
// 声明函数原型
//============================================================================
// 函数名称:new_xml_node
// 函数功能:创建一个新的XML节点对象--构造函数
//
// 输入参数: 1 -- 节点名称
// 2 -- 节点值
// 3 -- 节点类型
// 输出参数:
// 返回值:节点对象指针
// 说明:创建一个新的XML节点对象--构造函数
//============================================================================
struct xmlnode *new_xmlnode(char *name, char *value, enum xmlnode_type type );
//============================================================================
// 函数名称:del_xml_node
// 函数功能:删除一个XML节点对象--析构函数
//
// 输入参数: 1 -- 节点名称
// 2 -- 节点值
// 3 -- 节点类型
// 输出参数:
// 返回值:节点对象指针
// 说明:删除一个XML节点对象--析构函数
//============================================================================
void del_xmlnode( void *this );
//============================================================================
// 函数名称:xmlnode_init
// 函数功能:初始化一个新的XML节点对象--构造函数
//
// 输入参数: 1 -- 节点对象
// 2 -- 节点名称
// 3 -- 节点值
// 4 -- 节点类型
// 输出参数:
// 返回值:
// 说明:初始化一个新的XML节点对象--构造函数
//============================================================================
void xmlnode_init( void *this , char *name, char *value, enum xmlnode_type type );
//============================================================================
// 函数名称:xml_get_node_name
// 函数功能:得到一个节点对象的名字
//
// 输入参数: 1 -- 节点对象自身
// 输出参数: 2 -- 输出名字
// 返回值:名字的长度
// 说明:得到一个节点对象的名字
//============================================================================
int xmlnode_getname( void *this, char *buffer );
//============================================================================
// 函数名称:xml_get_node_name
// 函数功能:得到一个节点对象的值
//
// 输入参数: 1 -- 节点对象自身
// 输出参数: 2 -- 输出值
// 返回值:名字的值的字符串长度
// 说明:得到一个节点对象的值
//============================================================================
int xmlnode_getvalue( void *this, char *buffer );
//============================================================================
// 函数名称:xmlnode_setfather
// 函数功能:设置一个节点对象父节点
//
// 输入参数: 1 -- 节点对象自身
// 2 -- 父节点对象
// 输出参数:
// 返回值:节点对象第父节点
// 说明:设置一个节点对象父节点
//============================================================================
int xmlnode_setfather(void *this, struct xmlnode *father);
//============================================================================
// 函数名称:xmlnode_getfather
// 函数功能:得到一个节点对象父节点
//
// 输入参数: 1 -- 节点对象自身
// 输出参数:
// 返回值:节点对象第父节点
// 说明:得到一个节点对象父节点
//============================================================================
struct xmlnode * xmlnode_getfather(void *this);
//============================================================================
// 函数名称:xmlnode_getchild
// 函数功能:得到一个节点对象第一个子节点
//
// 输入参数: 1 -- 节点对象自身
// 输出参数:
// 返回值:节点对象第一个子节点
// 说明:得到一个节点对象第一个子节点
//============================================================================
struct xmlnode * xmlnode_getchild(void *this);
//============================================================================
// 函数名称:xmlnode_getprev
// 函数功能:得到一个节点对象上一个兄弟节点
//
// 输入参数: 1 -- 节点对象自身
// 输出参数:
// 返回值:节点对象上一个兄弟节点
// 说明:得到一个节点对象上一个兄弟节点
//============================================================================
struct xmlnode * xmlnode_getprev(void *this);
//============================================================================
// 函数名称:xmlnode_getnext
// 函数功能:得到一个节点对象下一个兄弟节点
//
// 输入参数: 1 -- 节点对象自身
// 输出参数:
// 返回值:节点对象下一个兄弟节点
// 说明:得到一个节点对象下一个兄弟节点
//============================================================================
struct xmlnode * xmlnode_getnext(void *this);
//============================================================================
// 函数名称:xmlnode_add
// 函数功能:从一个链表中增加一个节点对象
//
// 输入参数: 1 -- 链表对象的地址
// 2 -- 节点对象自身
// 输出参数:
// 返回值:none
// 说明:链表中元素个数
//============================================================================
int xmlnode_add( struct xmlnode **list, struct xmlnode *node );
//============================================================================
// 函数名称:xml_remove_node
// 函数功能:从一个链表中删除一个节点对象
//
// 输入参数: 1 -- 链表对象的地址
// 2 -- 节点对象自身
// 输出参数:
// 返回值:none
// 说明:从一个链表中删除一个节点对象
//============================================================================
int xmlnode_remove( struct xmlnode **list, struct xmlnode *node );
//============================================================================
// 函数名称:xml_remove_linklist
// 函数功能:删除一个链表对象
//
// 输入参数: 1 -- 链表对象的地址
// 输出参数:
// 返回值:none
// 说明:删除一个链表对象
//============================================================================
void xmlnode_removelinklist( struct xmlnode **list );
#endif /* XML_NODE_H_ */

Comment ( 0 )

Sign in for post a comment