pattern.h.svn-base
上传用户:szjkjd
上传日期:2022-06-27
资源大小:8968k
文件大小:3k
源码类别:

浏览器

开发平台:

Visual C++

  1. /*
  2.  * Summary: pattern expression handling
  3.  * Description: allows to compile and test pattern expressions for nodes
  4.  *              either in a tree or based on a parser state.
  5.  *
  6.  * Copy: See Copyright for the status of this software.
  7.  *
  8.  * Author: Daniel Veillard
  9.  */
  10. #ifndef __XML_PATTERN_H__
  11. #define __XML_PATTERN_H__
  12. #include <libxml/xmlversion.h>
  13. #include <libxml/tree.h>
  14. #include <libxml/dict.h>
  15. #ifdef LIBXML_PATTERN_ENABLED
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif
  19. /**
  20.  * xmlPattern:
  21.  *
  22.  * A compiled (XPath based) pattern to select nodes
  23.  */
  24. typedef struct _xmlPattern xmlPattern;
  25. typedef xmlPattern *xmlPatternPtr;
  26. /**
  27.  * xmlPatternFlags:
  28.  *
  29.  * This is the set of options affecting the behaviour of pattern
  30.  * matching with this module
  31.  *
  32.  */
  33. typedef enum {
  34.     XML_PATTERN_DEFAULT = 0, /* simple pattern match */
  35.     XML_PATTERN_XPATH = 1<<0, /* standard XPath pattern */
  36.     XML_PATTERN_XSSEL = 1<<1, /* XPath subset for schema selector */
  37.     XML_PATTERN_XSFIELD = 1<<2 /* XPath subset for schema field */
  38. } xmlPatternFlags;
  39. XMLPUBFUN void XMLCALL
  40. xmlFreePattern (xmlPatternPtr comp);
  41. XMLPUBFUN void XMLCALL
  42. xmlFreePatternList (xmlPatternPtr comp);
  43. XMLPUBFUN xmlPatternPtr XMLCALL
  44. xmlPatterncompile (const xmlChar *pattern,
  45.  xmlDict *dict,
  46.  int flags,
  47.  const xmlChar **namespaces);
  48. XMLPUBFUN int XMLCALL
  49. xmlPatternMatch (xmlPatternPtr comp,
  50.  xmlNodePtr node);
  51. /* streaming interfaces */
  52. typedef struct _xmlStreamCtxt xmlStreamCtxt;
  53. typedef xmlStreamCtxt *xmlStreamCtxtPtr;
  54. XMLPUBFUN int XMLCALL
  55. xmlPatternStreamable (xmlPatternPtr comp);
  56. XMLPUBFUN int XMLCALL
  57. xmlPatternMaxDepth (xmlPatternPtr comp);
  58. XMLPUBFUN int XMLCALL
  59. xmlPatternMinDepth (xmlPatternPtr comp);
  60. XMLPUBFUN int XMLCALL
  61. xmlPatternFromRoot (xmlPatternPtr comp);
  62. XMLPUBFUN xmlStreamCtxtPtr XMLCALL
  63. xmlPatternGetStreamCtxt (xmlPatternPtr comp);
  64. XMLPUBFUN void XMLCALL
  65. xmlFreeStreamCtxt (xmlStreamCtxtPtr stream);
  66. XMLPUBFUN int XMLCALL
  67. xmlStreamPushNode (xmlStreamCtxtPtr stream,
  68.  const xmlChar *name,
  69.  const xmlChar *ns,
  70.  int nodeType);
  71. XMLPUBFUN int XMLCALL
  72. xmlStreamPush (xmlStreamCtxtPtr stream,
  73.  const xmlChar *name,
  74.  const xmlChar *ns);
  75. XMLPUBFUN int XMLCALL
  76. xmlStreamPushAttr (xmlStreamCtxtPtr stream,
  77.  const xmlChar *name,
  78.  const xmlChar *ns);
  79. XMLPUBFUN int XMLCALL
  80. xmlStreamPop (xmlStreamCtxtPtr stream);
  81. XMLPUBFUN int XMLCALL
  82. xmlStreamWantsAnyNode (xmlStreamCtxtPtr stream);
  83. #ifdef __cplusplus
  84. }
  85. #endif
  86. #endif /* LIBXML_PATTERN_ENABLED */
  87. #endif /* __XML_PATTERN_H__ */