HTMLparser.h
上传用户:sy_wanhua
上传日期:2013-07-25
资源大小:3048k
文件大小:3k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

C/C++

  1. /*
  2.  * HTMLparser.h : inf=terface for an HTML 4.0 non-verifying parser
  3.  *
  4.  * See Copyright for the status of this software.
  5.  *
  6.  * Daniel.Veillard@w3.org
  7.  */
  8. #ifndef __HTML_PARSER_H__
  9. #define __HTML_PARSER_H__
  10. #include <libxml/parser.h>
  11. #ifdef __cplusplus
  12. extern "C" {
  13. #endif
  14. /*
  15.  * Most of the back-end structures from XML and HTML are shared
  16.  */
  17. typedef xmlParserCtxt htmlParserCtxt;
  18. typedef xmlParserCtxtPtr htmlParserCtxtPtr;
  19. typedef xmlParserNodeInfo htmlParserNodeInfo;
  20. typedef xmlSAXHandler htmlSAXHandler;
  21. typedef xmlSAXHandlerPtr htmlSAXHandlerPtr;
  22. typedef xmlParserInput htmlParserInput;
  23. typedef xmlParserInputPtr htmlParserInputPtr;
  24. typedef xmlDocPtr htmlDocPtr;
  25. typedef xmlNodePtr htmlNodePtr;
  26. /*
  27.  * Internal description of an HTML element
  28.  */
  29. typedef struct _htmlElemDesc htmlElemDesc;
  30. typedef htmlElemDesc *htmlElemDescPtr;
  31. struct _htmlElemDesc {
  32.     const char *name; /* The tag name */
  33.     int startTag;       /* Whether the start tag can be implied */
  34.     int endTag;         /* Whether the end tag can be implied */
  35.     int empty;          /* Is this an empty element ? */
  36.     int depr;           /* Is this a deprecated element ? */
  37.     int dtd;            /* 1: only in Loose DTD, 2: only Frameset one */
  38.     const char *desc;   /* the description */
  39. };
  40. /*
  41.  * Internal description of an HTML entity
  42.  */
  43. typedef struct _htmlEntityDesc htmlEntityDesc;
  44. typedef htmlEntityDesc *htmlEntityDescPtr;
  45. struct _htmlEntityDesc {
  46.     int value; /* the UNICODE value for the character */
  47.     const char *name; /* The entity name */
  48.     const char *desc;   /* the description */
  49. };
  50. /*
  51.  * There is only few public functions.
  52.  */
  53. htmlElemDescPtr htmlTagLookup (const xmlChar *tag);
  54. htmlEntityDescPtr htmlEntityLookup(const xmlChar *name);
  55. int htmlIsAutoClosed(htmlDocPtr doc,
  56.  htmlNodePtr elem);
  57. int htmlAutoCloseTag(htmlDocPtr doc,
  58.  const xmlChar *name,
  59.  htmlNodePtr elem);
  60. htmlEntityDescPtr htmlParseEntityRef(htmlParserCtxtPtr ctxt,
  61.  xmlChar **str);
  62. int htmlParseCharRef(htmlParserCtxtPtr ctxt);
  63. void htmlParseElement(htmlParserCtxtPtr ctxt);
  64. htmlDocPtr htmlSAXParseDoc (xmlChar *cur,
  65.  const char *encoding,
  66.  htmlSAXHandlerPtr sax,
  67.  void *userData);
  68. htmlDocPtr htmlParseDoc (xmlChar *cur,
  69.  const char *encoding);
  70. htmlDocPtr htmlSAXParseFile(const char *filename,
  71.  const char *encoding,
  72.  htmlSAXHandlerPtr sax,
  73.  void *userData);
  74. htmlDocPtr htmlParseFile (const char *filename,
  75.  const char *encoding);
  76. /**
  77.  * Interfaces for the Push mode
  78.  */
  79. void htmlFreeParserCtxt (htmlParserCtxtPtr ctxt);
  80. htmlParserCtxtPtr htmlCreatePushParserCtxt(htmlSAXHandlerPtr sax,
  81.  void *user_data,
  82.  const char *chunk,
  83.  int size,
  84.  const char *filename,
  85.  xmlCharEncoding enc);
  86. int htmlParseChunk (htmlParserCtxtPtr ctxt,
  87.  const char *chunk,
  88.  int size,
  89.  int terminate);
  90. #ifdef __cplusplus
  91. }
  92. #endif
  93. #endif /* __HTML_PARSER_H__ */