Introduction
Globals
Macros which declare an exportable function */
#define XMLPUBFUN ;
Discussion
NodeSet handling.
Macros which declare an exportable function */
#define XMLPUBFUN ;
Discussion
Extending a context.
Macros which declare an exportable function */
#define XMLPUBFUN ;
Discussion
Utilities to extend XPath.
Macros which declare an exportable function */
#define XMLPUBFUN ;
Discussion
Really internal functions
#defines
#define CAST_TO_BOOLEAN \ if ((
ctxt->value != NULL) && (
ctxt->value->type != XPATH_BOOLEAN)) \ xmlXPathBooleanFunction(
ctxt, 1);
Discussion
CAST_TO_BOOLEAN:
Macro to try to cast the value on the top of the XPath stack to a boolean.
#define CAST_TO_NUMBER \ if ((
ctxt->value != NULL) && (
ctxt->value->type != XPATH_NUMBER)) \ xmlXPathNumberFunction(
ctxt, 1);
Discussion
CAST_TO_NUMBER:
Macro to try to cast the value on the top of the XPath stack to a number.
#define CAST_TO_STRING \ if ((
ctxt->value != NULL) && (
ctxt->value->type != XPATH_STRING)) \ xmlXPathStringFunction(
ctxt, 1);
Discussion
CAST_TO_STRING:
Macro to try to cast the value on the top of the XPath stack to a string.
#define CHECK_ARITY(
x) \ if (
ctxt == NULL) return; \ if (
nargs != (
x)) \ {
xmlXPathErr(
ctxt, XPATH_INVALID_ARITY); return; };
Discussion
CHECK_ARITY:
@x: the number of expected args
Macro to check that the number of args passed to an XPath function matches.
#define CHECK_ERROR \ if (
ctxt->error != XPATH_EXPRESSION_OK) return
Discussion
CHECK_ERROR:
Macro to return from the function if an XPath error was detected.
#define CHECK_ERROR0 \ if (
ctxt->error != XPATH_EXPRESSION_OK) return(
0)
Discussion
CHECK_ERROR0:
Macro to return 0 from the function if an XPath error was detected.
#define CHECK_TYPE(
typeval) \ if ((
ctxt->value == NULL) || (
ctxt->value->type != typeval)) \ {
xmlXPathErr(
ctxt, XPATH_INVALID_TYPE); return;
}
Discussion
CHECK_TYPE:
@typeval: the XPath type
Macro to check that the value on top of the XPath stack is of a given
type.
#define CHECK_TYPE0(
typeval) \ if ((
ctxt->value == NULL) || (
ctxt->value->type != typeval)) \ {
xmlXPathErr(
ctxt, XPATH_INVALID_TYPE); return(
0);
}
Discussion
CHECK_TYPE0:
@typeval: the XPath type
Macro to check that the value on top of the XPath stack is of a given
type. Return(0) in case of failure
#define xmlXPathCheckError(
ctxt)
Discussion
xmlXPathCheckError:
@ctxt: an XPath parser context
Check if an XPath error was raised.
Returns true if an error has been raised, false otherwise.
#define xmlXPathEmptyNodeSet(
ns) \ {
while ((
ns)->nodeNr > 0) (
ns)->nodeTab[(
ns)->nodeNr--] = NULL;
}
Discussion
xmlXPathEmptyNodeSet:
@ns: a node-set
Empties a node-set.
#define xmlXPathGetContextNode(
ctxt)
Discussion
xmlXPathGetContextNode:
@ctxt: an XPath parser context
Get the context node of an XPath context.
Returns the context node.
#define xmlXPathGetDocument(
ctxt)
Discussion
xmlXPathGetDocument:
@ctxt: an XPath parser context
Get the document of an XPath context.
Returns the context document.
#define xmlXPathGetError(
ctxt)
Discussion
xmlXPathGetError:
@ctxt: an XPath parser context
Get the error code of an XPath context.
Returns the context error.
#define xmlXPathReturnBoolean(
ctxt, val) \ valuePush((
ctxt), xmlXPathNewBoolean(
val))
Discussion
xmlXPathReturnBoolean:
@ctxt: an XPath parser context
@val: a boolean
Pushes the boolean @val on the context stack.
#define xmlXPathReturnEmptyNodeSet(
ctxt) \ valuePush((
ctxt), xmlXPathNewNodeSet(
NULL))
Discussion
xmlXPathReturnEmptyNodeSet:
@ctxt: an XPath parser context
Pushes an empty node-set on the context stack.
#define xmlXPathReturnEmptyString(
ctxt) \ valuePush((
ctxt), xmlXPathNewCString(
""))
Discussion
xmlXPathReturnEmptyString:
@ctxt: an XPath parser context
Pushes an empty string on the stack.
#define xmlXPathReturnExternal(
ctxt, val) \ valuePush((
ctxt), xmlXPathWrapExternal(
val))
Discussion
xmlXPathReturnExternal:
@ctxt: an XPath parser context
@val: user data
Pushes user data on the context stack.
#define xmlXPathReturnFalse(
ctxt) valuePush(((
ctxt)), xmlXPathNewBoolean(
0))
Discussion
xmlXPathReturnFalse:
@ctxt: an XPath parser context
Pushes false on the context stack.
#define xmlXPathReturnNodeSet(
ctxt, ns) \ valuePush((
ctxt), xmlXPathWrapNodeSet(
ns))
Discussion
xmlXPathReturnNodeSet:
@ctxt: an XPath parser context
@ns: a node-set
Pushes the node-set @ns on the context stack.
#define xmlXPathReturnNumber(
ctxt, val) \ valuePush((
ctxt), xmlXPathNewFloat(
val))
Discussion
xmlXPathReturnNumber:
@ctxt: an XPath parser context
@val: a double
Pushes the double @val on the context stack.
#define xmlXPathReturnString(
ctxt, str) \ valuePush((
ctxt), xmlXPathWrapString(
str))
Discussion
xmlXPathReturnString:
@ctxt: an XPath parser context
@str: a string
Pushes the string @str on the context stack.
#define xmlXPathReturnTrue(
ctxt) valuePush(((
ctxt)), xmlXPathNewBoolean(
1))
Discussion
xmlXPathReturnTrue:
@ctxt: an XPath parser context
Pushes true on the context stack.
#define xmlXPathSetArityError(
ctxt) \ {
xmlXPatherror(((
ctxt)), __FILE__, __LINE__, (
XPATH_INVALID_ARITY)); \ if (((
ctxt)) != NULL) ((
ctxt))->error = (
XPATH_INVALID_ARITY);
}
Discussion
xmlXPathSetArityError:
@ctxt: an XPath parser context
Raises an XPATH_INVALID_ARITY error.
#define xmlXPathSetError(
ctxt, err) \ {
xmlXPatherror((
ctxt), __FILE__, __LINE__, (
err)); \ if ((
ctxt) != NULL) (
ctxt)->error = (
err);
}
Discussion
xmlXPathSetError:
@ctxt: an XPath parser context
@err: an xmlXPathError code
Raises an error.
#define xmlXPathSetTypeError(
ctxt) \ {
xmlXPatherror(((
ctxt)), __FILE__, __LINE__, (
XPATH_INVALID_TYPE)); \ if (((
ctxt)) != NULL) ((
ctxt))->error = (
XPATH_INVALID_TYPE);
}
Discussion
xmlXPathSetTypeError:
@ctxt: an XPath parser context
Raises an XPATH_INVALID_TYPE error.
#define xmlXPathStackIsExternal(
ctxt) \ ((
ctxt->value != NULL) && (
ctxt->value->type == XPATH_USERS))
Discussion
xmlXPathStackIsExternal:
@ctxt: an XPath parser context
Checks if the current value on the XPath stack is an external
object.
Returns true if the current object on the stack is an external
object.
#define xmlXPathStackIsNodeSet(
ctxt) \ (((
ctxt)->value != NULL) \ && (((
ctxt)->value->type == XPATH_NODESET) \ || ((
ctxt)->value->type == XPATH_XSLT_TREE)))
Discussion
xmlXPathStackIsNodeSet:
@ctxt: an XPath parser context
Check if the current value on the XPath stack is a node set or
an XSLT value tree.
Returns true if the current object on the stack is a node-set.
#define XP_ERROR(
X) \ {
xmlXPathErr(
ctxt, X); return;
}
Discussion
XP_ERROR:
@X: the error code
Macro to raise an XPath error and return.
#define XP_ERROR0(
X) \ {
xmlXPathErr(
ctxt, X); return(
0);
}
Discussion
XP_ERROR0:
@X: the error code
Macro to raise an XPath error and return 0.
We’re sorry, an error has occurred.
Please try submitting your feedback later.
Thank you for providing feedback!
Your input helps improve our developer documentation.
Last Updated: 2006-06-20