Details
struct xmlXPathContext
struct xmlXPathContext {
xmlDocPtr doc; /* The current document */
xmlNodePtr node; /* The current node */
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 */
/* extra variables */
int contextSize; /* the context size */
int proximityPosition; /* the proximity position */
/* extra stuff for XPointer */
int xptr; /* it this an XPointer context */
xmlNodePtr here; /* for here() */
xmlNodePtr origin; /* for origin() */
}; |
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; |
enum xmlXPathError
typedef enum {
XPATH_EXPRESSION_OK = 0,
XPATH_NUMBER_ERROR,
XPATH_UNFINISHED_LITERAL_ERROR,
XPATH_START_LITERAL_ERROR,
XPATH_VARIABLE_REF_ERROR,
XPATH_UNDEF_VARIABLE_ERROR,
XPATH_INVALID_PREDICATE_ERROR,
XPATH_EXPR_ERROR,
XPATH_UNCLOSED_ERROR,
XPATH_UNKNOWN_FUNC_ERROR,
XPATH_INVALID_OPERAND,
XPATH_INVALID_TYPE,
XPATH_INVALID_ARITY,
XPATH_INVALID_CTXT_SIZE,
XPATH_INVALID_CTXT_POSITION,
XPATH_MEMORY_ERROR,
XPTR_SYNTAX_ERROR,
XPTR_RESOURCE_ERROR,
XPTR_SUB_RESOURCE_ERROR
} xmlXPathError; |
Create a new xmlNodeSetPtr of type double and of value val
struct xmlNodeSet
struct xmlNodeSet {
int nodeNr; /* number of nodes in the set */
int nodeMax; /* size of the array as allocated */
xmlNodePtr *nodeTab; /* array of nodes in no particular order */
}; |
xmlNodeSetPtr
typedef xmlNodeSet *xmlNodeSetPtr; |
enum xmlXPathObjectType
typedef enum {
XPATH_UNDEFINED = 0,
XPATH_NODESET = 1,
XPATH_BOOLEAN = 2,
XPATH_NUMBER = 3,
XPATH_STRING = 4,
XPATH_POINT = 5,
XPATH_RANGE = 6,
XPATH_LOCATIONSET = 7,
XPATH_USERS = 8
} xmlXPathObjectType; |
struct xmlXPathObject
struct xmlXPathObject {
xmlXPathObjectType type;
xmlNodeSetPtr nodesetval;
int boolval;
double floatval;
xmlChar *stringval;
void *user;
int index;
void *user2;
int index2;
}; |
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; |
CHECK_TYPE()
#define CHECK_TYPE(typeval) |
xmlXPathDebugDumpObject ()
xmlXPathNewParserContext ()
Create a new xmlXPathParserContext
xmlXPathFreeParserContext ()
Free up an xmlXPathParserContext
xmlXPathNewString ()
Create a new xmlXPathObjectPtr of type string and of value val
xmlXPathNewNodeSet ()
Create a new xmlXPathObjectPtr of type NodeSet and initialize
it with the single Node val
xmlXPathNodeSetAdd ()
add a new xmlNodePtr ot an existing NodeSet
xmlXPathIdFunction ()
Implement the id() XPath function
The id function selects elements by their unique ID
(see [5.2.1 Unique IDs]). When the argument to id is of type node-set,
then the result is the union of the result of applying id to the
string value of each of the nodes in the argument node-set. When the
argument to id is of any other type, the argument is converted to a
string as if by a call to the string function; the string is split
into a whitespace-separated list of tokens (whitespace is any sequence
of characters matching the production S); the result is a node-set
containing the elements in the same document as the context node that
have a unique ID equal to any of the tokens in the list.
xmlXPathRoot ()
Initialize the context to the root of the document
xmlXPathEvalExpr ()
[14] Expr ::= OrExpr
[21] OrExpr ::= AndExpr
| OrExpr 'or' AndExpr
Parse and evaluate an expression, then push the result on the stack
xmlXPathParseName ()
parse an XML name
[4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' |
CombiningChar | Extender
[5] Name ::= (Letter | '_' | ':') (NameChar)*
xmlXPathRegisterFunc ()
Register a new function. If f is NULL it unregisters the function
xmlXPathRegisterVariable ()
Register a new variable value. If value is NULL it unregisters
the variable
xmlXPathInit ()
void xmlXPathInit (void); |
Initialize the XPath environment
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 !).
xmlXPathObjectCopy ()
allocate a new copy of a given object