xml_if.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /**********************************************************************
  2. ModuleName: xml_if.h
  3. Description: xml interface headerfile
  4. Copyright: Copyright @ 2010 Sunplus, Inc.
  5. History: mc.xu@sunmedia.com.cn 2011.09.06 Creation
  6. **********************************************************************/
  7. #ifndef __XML_IF_H__
  8. #define __XML_IF_H__
  9. #ifndef bool
  10. #define bool char
  11. #ifndef true
  12. #define true 1
  13. #endif
  14. #ifndef false
  15. #define false 0
  16. #endif
  17. #endif
  18. typedef struct _XmlParser {
  19. bool parseResult;
  20. } XmlParser;
  21. typedef void (*XML_NODE_USERDATA_DESTRUCTORFUNC)(void *);
  22. typedef struct _XmlAttribute {
  23. bool headFlag;
  24. struct _XmlAttribute *prev;
  25. struct _XmlAttribute *next;
  26. char *name;
  27. char *value;
  28. } XmlAttribute, XmlAttributeList;
  29. typedef struct _XmlNode {
  30. bool headFlag;
  31. struct _XmlNode *prev;
  32. struct _XmlNode *next;
  33. char *name;
  34. char *value;
  35. struct _XmlAttribute *attrList;
  36. struct _XmlNode *nodeList;
  37. struct _XmlNode *parentNode;
  38. void *userData;
  39. XML_NODE_USERDATA_DESTRUCTORFUNC userDataDestructorFunc;
  40. } XmlNode, XmlNodeList;
  41. XmlNodeList *xml_nodelist_new();
  42. XmlParser *xml_parser_new();
  43. bool xml_parse(XmlParser *parser, XmlNodeList *nodeList, char *data, int len);
  44. XmlNode *xml_nodelist_getbyname(XmlNodeList *nodeList, char *name);
  45. XmlNode *xml_node_getchildnodes(XmlNode *didlNode);
  46. char *xml_node_getchildnodevalue(XmlNode *node, char *name);
  47. XmlNode *xml_node_next(XmlNode *cnode);
  48. void xml_nodelist_delete(XmlNodeList *nodeList);
  49. void xml_parser_delete(XmlParser *parser);
  50. char *xml_node_getattributevalue(XmlNodeList *node, char *name);
  51. #endif