Details
struct xmlXPathContext
| struct xmlXPathContext {
    xmlDocPtr doc;			/* The current document */
    xmlNodePtr node;			/* The current node */
    xmlNodeSetPtr nodelist;		/* The current node list */
    int nb_variables;			/* number of defined variables */
    int max_variables;			/* max number of variables */
    xmlXPathVariablePtr *variables;	/* Array of defined variables */
    int nb_types;			/* number of defined types */
    int max_types;			/* max number of types */
    xmlXPathTypePtr *types;		/* Array of defined types */
    int nb_funcs;			/* number of defined funcs */
    int max_funcs;			/* max number of funcs */
    xmlXPathFuncPtr *funcs;		/* Array of defined funcs */
    int nb_axis;			/* number of defined axis */
    int max_axis;			/* max number of axis */
    xmlXPathAxisPtr *axis;		/* Array of defined axis */
    /* Namespace traversal should be implemented with user */
    xmlNsPtr *namespaces;		/* The namespaces lookup */
    int nsNr;				/* the current Namespace index */
    void *user;				/* user defined extra info */
}; | 
xmlXPathContextPtr
| typedef xmlXPathContext *xmlXPathContextPtr; | 
struct xmlXPathParserContext
| struct xmlXPathParserContext {
    const xmlChar *cur;			/* the current char being parsed */
    const xmlChar *base;			/* the full expression */
    int error;				/* error code */
    xmlXPathContextPtr  context;	/* the evaluation context */
    xmlXPathObjectPtr     value;	/* the current value */
    int                 valueNr;	/* number of values stacked */
    int                valueMax;	/* max number of values stacked */
    xmlXPathObjectPtr *valueTab;	/* stack of values */
}; | 
xmlXPathParserContextPtr
| typedef xmlXPathParserContext *xmlXPathParserContextPtr; | 
struct xmlNodeSet
| struct xmlNodeSet {
    int nodeNr;			/* # of node in the set */
    int nodeMax;		/* allocated space */
    xmlNodePtr *nodeTab;	/* array of nodes in no particular order */
}; | 
xmlNodeSetPtr
| typedef xmlNodeSet *xmlNodeSetPtr; | 
XPATH_UNDEFINED
| #define XPATH_UNDEFINED	0 | 
struct xmlXPathObject
| struct xmlXPathObject {
    int type;
    xmlNodeSetPtr nodesetval;
    int boolval;
    double floatval;
    xmlChar *stringval;
    void *user;
}; | 
xmlXPathObjectPtr
| typedef xmlXPathObject *xmlXPathObjectPtr; | 
struct xmlXPathType
| struct xmlXPathType {
    const xmlChar         *name;		/* the type name */
    xmlXPathConvertFunc func;		/* the conversion function */
}; | 
xmlXPathTypePtr
| typedef xmlXPathType *xmlXPathTypePtr; | 
struct xmlXPathVariable
| struct xmlXPathVariable {
    const xmlChar       *name;		/* the variable name */
    xmlXPathObjectPtr value;		/* the value */
}; | 
xmlXPathVariablePtr
| typedef xmlXPathVariable *xmlXPathVariablePtr; | 
struct xmlXPathFunct
| struct xmlXPathFunct {
    const xmlChar      *name;		/* the function name */
    xmlXPathEvalFunc func;		/* the evaluation function */
}; | 
xmlXPathFuncPtr
| typedef xmlXPathFunct *xmlXPathFuncPtr; | 
struct xmlXPathAxis
| struct xmlXPathAxis {
    const xmlChar      *name;		/* the axis name */
    xmlXPathAxisFunc func;		/* the search function */
}; | 
xmlXPathAxisPtr
| typedef xmlXPathAxis *xmlXPathAxisPtr; | 
xmlXPathNewContext ()
Create a new xmlXPathContext
xmlXPathFreeContext ()
Free up an xmlXPathContext
xmlXPathEval ()
Evaluate the XPath Location Path in the given context.
xmlXPathFreeObject ()
Free up an xmlXPathObjectPtr object.
xmlXPathEvalExpression ()
Evaluate the XPath expression in the given context.
xmlXPathNodeSetCreate ()
Create a new xmlNodeSetPtr of type double and of value val
xmlXPathFreeNodeSetList ()
Free up the xmlXPathObjectPtr obj but don't deallocate the objects in
the list contrary to xmlXPathFreeObject().
xmlXPathFreeNodeSet ()
Free the NodeSet compound (not the actual nodes !).