Whole document tree
    

Whole document tree

xpath

xpath

Name

xpath -- 

Description

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


XPATH_NODESET

#define XPATH_NODESET	1


XPATH_BOOLEAN

#define XPATH_BOOLEAN	2


XPATH_NUMBER

#define XPATH_NUMBER	3


XPATH_STRING

#define XPATH_STRING	4


XPATH_USERS

#define XPATH_USERS	5


struct xmlXPathObject

struct xmlXPathObject {
    int type;
    xmlNodeSetPtr nodesetval;
    int boolval;
    double floatval;
    xmlChar *stringval;
    void *user;
};


xmlXPathObjectPtr

typedef xmlXPathObject *xmlXPathObjectPtr;


xmlXPathConvertFunc ()

int         (*xmlXPathConvertFunc)          (xmlXPathObjectPtr obj,
                                             int type);

obj : 
type : 
Returns :


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;


xmlXPathEvalFunc ()

void        (*xmlXPathEvalFunc)             (xmlXPathParserContextPtr ctxt,
                                             int nargs);

ctxt : 
nargs :


struct xmlXPathFunct

struct xmlXPathFunct {
    const xmlChar      *name;		/* the function name */
    xmlXPathEvalFunc func;		/* the evaluation function */
};


xmlXPathFuncPtr

typedef xmlXPathFunct *xmlXPathFuncPtr;


xmlXPathAxisFunc ()

xmlXPathObjectPtr (*xmlXPathAxisFunc)       (xmlXPathParserContextPtr ctxt,
                                             xmlXPathObjectPtr cur);

ctxt : 
cur : 
Returns :


struct xmlXPathAxis

struct xmlXPathAxis {
    const xmlChar      *name;		/* the axis name */
    xmlXPathAxisFunc func;		/* the search function */
};


xmlXPathAxisPtr

typedef xmlXPathAxis *xmlXPathAxisPtr;


xmlXPathFunction ()

void        (*xmlXPathFunction)             (xmlXPathParserContextPtr ctxt,
                                             int nargs);

ctxt : 
nargs :


xmlXPathNewContext ()

xmlXPathContextPtr xmlXPathNewContext       (xmlDocPtr doc);

Create a new xmlXPathContext

doc : the XML document
Returns :the xmlXPathContext just allocated.


xmlXPathFreeContext ()

void        xmlXPathFreeContext             (xmlXPathContextPtr ctxt);

Free up an xmlXPathContext

ctxt : the context to free


xmlXPathEval ()

xmlXPathObjectPtr xmlXPathEval              (const xmlChar *str,
                                             xmlXPathContextPtr ctxt);

Evaluate the XPath Location Path in the given context.

str : the XPath expression
ctxt : the XPath context
Returns :the xmlXPathObjectPtr resulting from the eveluation or NULL. the caller has to free the object.


xmlXPathFreeObject ()

void        xmlXPathFreeObject              (xmlXPathObjectPtr obj);

Free up an xmlXPathObjectPtr object.

obj : the object to free


xmlXPathEvalExpression ()

xmlXPathObjectPtr xmlXPathEvalExpression    (const xmlChar *str,
                                             xmlXPathContextPtr ctxt);

Evaluate the XPath expression in the given context.

str : the XPath expression
ctxt : the XPath context
Returns :the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object.


xmlXPathNodeSetCreate ()

xmlNodeSetPtr xmlXPathNodeSetCreate         (xmlNodePtr val);

Create a new xmlNodeSetPtr of type double and of value val

val : an initial xmlNodePtr, or NULL
Returns :the newly created object.


xmlXPathFreeNodeSetList ()

void        xmlXPathFreeNodeSetList         (xmlXPathObjectPtr obj);

Free up the xmlXPathObjectPtr obj but don't deallocate the objects in the list contrary to xmlXPathFreeObject().

obj : an existing NodeSetList object


xmlXPathFreeNodeSet ()

void        xmlXPathFreeNodeSet             (xmlNodeSetPtr obj);

Free the NodeSet compound (not the actual nodes !).

obj : the xmlNodeSetPtr to free