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.
|
Did this document help you? |
Yes: Tell us what works for you.
|
|
Last Updated: 2006-06-20