Viewing file: pattern.h (2.54 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/** * @file * * @brief pattern expression handling * * allows to compile and test pattern expressions for nodes * either in a tree or based on a parser state. * * @copyright See Copyright for the status of this software. * * @author Daniel Veillard */
#ifndef __XML_PATTERN_H__ #define __XML_PATTERN_H__
#include <libxml/xmlversion.h> #include <libxml/tree.h> #include <libxml/dict.h>
#ifdef LIBXML_PATTERN_ENABLED
#ifdef __cplusplus extern "C" { #endif
/** * A compiled (XPath based) pattern to select nodes */ typedef struct _xmlPattern xmlPattern; typedef xmlPattern *xmlPatternPtr;
/** * Internal type. This is the set of options affecting the behaviour * of pattern matching with this module. */ typedef enum { XML_PATTERN_DEFAULT = 0, /* simple pattern match */ XML_PATTERN_XPATH = 1<<0, /* standard XPath pattern */ XML_PATTERN_XSSEL = 1<<1, /* XPath subset for schema selector */ XML_PATTERN_XSFIELD = 1<<2 /* XPath subset for schema field */ } xmlPatternFlags;
XMLPUBFUN void xmlFreePattern (xmlPattern *comp);
XMLPUBFUN void xmlFreePatternList (xmlPattern *comp);
XMLPUBFUN xmlPattern * xmlPatterncompile (const xmlChar *pattern, xmlDict *dict, int flags, const xmlChar **namespaces); XMLPUBFUN int xmlPatternCompileSafe (const xmlChar *pattern, xmlDict *dict, int flags, const xmlChar **namespaces, xmlPattern **patternOut); XMLPUBFUN int xmlPatternMatch (xmlPattern *comp, xmlNode *node);
/** State object for streaming interface */ typedef struct _xmlStreamCtxt xmlStreamCtxt; typedef xmlStreamCtxt *xmlStreamCtxtPtr;
XMLPUBFUN int xmlPatternStreamable (xmlPattern *comp); XMLPUBFUN int xmlPatternMaxDepth (xmlPattern *comp); XMLPUBFUN int xmlPatternMinDepth (xmlPattern *comp); XMLPUBFUN int xmlPatternFromRoot (xmlPattern *comp); XMLPUBFUN xmlStreamCtxt * xmlPatternGetStreamCtxt (xmlPattern *comp); XMLPUBFUN void xmlFreeStreamCtxt (xmlStreamCtxt *stream); XMLPUBFUN int xmlStreamPushNode (xmlStreamCtxt *stream, const xmlChar *name, const xmlChar *ns, int nodeType); XMLPUBFUN int xmlStreamPush (xmlStreamCtxt *stream, const xmlChar *name, const xmlChar *ns); XMLPUBFUN int xmlStreamPushAttr (xmlStreamCtxt *stream, const xmlChar *name, const xmlChar *ns); XMLPUBFUN int xmlStreamPop (xmlStreamCtxt *stream); XMLPUBFUN int xmlStreamWantsAnyNode (xmlStreamCtxt *stream); #ifdef __cplusplus } #endif
#endif /* LIBXML_PATTERN_ENABLED */
#endif /* __XML_PATTERN_H__ */
|