/********************************************************************** ModuleName: xml_if.h Description: xml interface headerfile Copyright: Copyright @ 2010 Sunplus, Inc. History: mc.xu@sunmedia.com.cn 2011.09.06 Creation **********************************************************************/ #ifndef __XML_IF_H__ #define __XML_IF_H__ #ifndef bool #define bool char #ifndef true #define true 1 #endif #ifndef false #define false 0 #endif #endif typedef struct _XmlParser { bool parseResult; } XmlParser; typedef void (*XML_NODE_USERDATA_DESTRUCTORFUNC)(void *); typedef struct _XmlAttribute { bool headFlag; struct _XmlAttribute *prev; struct _XmlAttribute *next; char *name; char *value; } XmlAttribute, XmlAttributeList; typedef struct _XmlNode { bool headFlag; struct _XmlNode *prev; struct _XmlNode *next; char *name; char *value; struct _XmlAttribute *attrList; struct _XmlNode *nodeList; struct _XmlNode *parentNode; void *userData; XML_NODE_USERDATA_DESTRUCTORFUNC userDataDestructorFunc; } XmlNode, XmlNodeList; XmlNodeList *xml_nodelist_new(); XmlParser *xml_parser_new(); bool xml_parse(XmlParser *parser, XmlNodeList *nodeList, char *data, int len); XmlNode *xml_nodelist_getbyname(XmlNodeList *nodeList, char *name); XmlNode *xml_node_getchildnodes(XmlNode *didlNode); char *xml_node_getchildnodevalue(XmlNode *node, char *name); XmlNode *xml_node_next(XmlNode *cnode); void xml_nodelist_delete(XmlNodeList *nodeList); void xml_parser_delete(XmlParser *parser); char *xml_node_getattributevalue(XmlNodeList *node, char *name); #endif