Gnome XML Library Reference Manual
<<< Previous Page | Home | Up | Next Page >>>

# xpath

## Name

xpath --

## Synopsis

    struct      xmlXPathContext;
    typedef     xmlXPathContextPtr;
    struct      xmlXPathParserContext;
    typedef     xmlXPathParserContextPtr;
    struct      xmlNodeSet;
    typedef     xmlNodeSetPtr;
    #define     XPATH_UNDEFINED
    #define     XPATH_NODESET
    #define     XPATH_BOOLEAN
    #define     XPATH_NUMBER
    #define     XPATH_STRING
    #define     XPATH_USERS
    struct      xmlXPathObject;
    typedef     xmlXPathObjectPtr;
    int         (*xmlXPathConvertFunc)          (xmlXPathObjectPtr obj,
                                                 int type);
    struct      xmlXPathType;
    typedef     xmlXPathTypePtr;
    struct      xmlXPathVariable;
    typedef     xmlXPathVariablePtr;
    void        (*xmlXPathEvalFunc)             (xmlXPathParserContextPtr ctxt,
                                                 int nargs);
    struct      xmlXPathFunct;
    typedef     xmlXPathFuncPtr;
    xmlXPathObjectPtr (*xmlXPathAxisFunc)       (xmlXPathParserContextPtr ctxt,
                                                 xmlXPathObjectPtr cur);
    struct      xmlXPathAxis;
    typedef     xmlXPathAxisPtr;
    void        (*xmlXPathFunction)             (xmlXPathParserContextPtr ctxt,
                                                 int nargs);
    xmlXPathContextPtr xmlXPathNewContext       (xmlDocPtr doc);
    void        xmlXPathFreeContext             (xmlXPathContextPtr ctxt);
    xmlXPathObjectPtr xmlXPathEval              (const xmlChar *str,
                                                 xmlXPathContextPtr ctxt);
    void        xmlXPathFreeObject              (xmlXPathObjectPtr obj);
    xmlXPathObjectPtr xmlXPathEvalExpression    (const xmlChar *str,
                                                 xmlXPathContextPtr ctxt);
    xmlNodeSetPtr xmlXPathNodeSetCreate         (xmlNodePtr val);
    void        xmlXPathFreeNodeSetList         (xmlXPathObjectPtr obj);
    void        xmlXPathFreeNodeSet             (xmlNodeSetPtr obj);

## 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

<<< Previous Page | Home | Up | Next Page >>>
HTMLtree | nanohttp