|  |  |  | Gnome XML Library Reference Manual |  | 
|---|
xpointer —
struct xmlLocationSet; typedef xmlLocationSetPtr; xmlLocationSetPtr xmlXPtrLocationSetCreate (xmlXPathObjectPtr val); void xmlXPtrFreeLocationSet (xmlLocationSetPtr obj); xmlLocationSetPtr xmlXPtrLocationSetMerge (xmlLocationSetPtr val1, xmlLocationSetPtr val2); xmlXPathObjectPtr xmlXPtrNewRange (xmlNodePtr start, int startindex, xmlNodePtr end, int endindex); xmlXPathObjectPtr xmlXPtrNewRangePoints (xmlXPathObjectPtr start, xmlXPathObjectPtr end); xmlXPathObjectPtr xmlXPtrNewRangeNodePoint (xmlNodePtr start, xmlXPathObjectPtr end); xmlXPathObjectPtr xmlXPtrNewRangePointNode (xmlXPathObjectPtr start, xmlNodePtr end); xmlXPathObjectPtr xmlXPtrNewRangeNodes (xmlNodePtr start, xmlNodePtr end); xmlXPathObjectPtr xmlXPtrNewLocationSetNodes (xmlNodePtr start, xmlNodePtr end); xmlXPathObjectPtr xmlXPtrNewLocationSetNodeSet (xmlNodeSetPtr set); xmlXPathObjectPtr xmlXPtrNewRangeNodeObject (xmlNodePtr start, xmlXPathObjectPtr end); xmlXPathObjectPtr xmlXPtrNewCollapsedRange (xmlNodePtr start); void xmlXPtrLocationSetAdd (xmlLocationSetPtr cur, xmlXPathObjectPtr val); xmlXPathObjectPtr xmlXPtrWrapLocationSet (xmlLocationSetPtr val); void xmlXPtrLocationSetDel (xmlLocationSetPtr cur, xmlXPathObjectPtr val); void xmlXPtrLocationSetRemove (xmlLocationSetPtr cur, int val); xmlXPathContextPtr xmlXPtrNewContext (xmlDocPtr doc, xmlNodePtr here, xmlNodePtr origin); xmlXPathObjectPtr xmlXPtrEval (const xmlChar *str, xmlXPathContextPtr ctx); void xmlXPtrRangeToFunction (xmlXPathParserContextPtr ctxt, int nargs); xmlNodePtr xmlXPtrBuildNodeList (xmlXPathObjectPtr obj); void xmlXPtrEvalRangePredicate (xmlXPathParserContextPtr ctxt);
struct xmlLocationSet {
    int locNr;		      /* number of locations in the set */
    int locMax;		      /* size of the array as allocated */
    xmlXPathObjectPtr *locTab;/* array of locations */
};
xmlLocationSetPtr xmlXPtrLocationSetCreate (xmlXPathObjectPtr val);
Create a new xmlLocationSetPtr of type double and of value val
| val : | an initial xmlXPathObjectPtr, or NULL | 
| Returns : | the newly created object. | 
void xmlXPtrFreeLocationSet (xmlLocationSetPtr obj);
Free the LocationSet compound (not the actual ranges !).
| obj : | the xmlLocationSetPtr to free | 
xmlLocationSetPtr xmlXPtrLocationSetMerge (xmlLocationSetPtr val1, xmlLocationSetPtr val2);
Merges two rangesets, all ranges from val2 are added to val1
| val1 : | the first LocationSet | 
| val2 : | the second LocationSet | 
| Returns : | val1 once extended or NULL in case of error. | 
xmlXPathObjectPtr xmlXPtrNewRange (xmlNodePtr start, int startindex, xmlNodePtr end, int endindex);
Create a new xmlXPathObjectPtr of type range
| start : | the starting node | 
| startindex : | the start index | 
| end : | the ending point | 
| endindex : | the ending index | 
| Returns : | the newly created object. | 
xmlXPathObjectPtr xmlXPtrNewRangePoints (xmlXPathObjectPtr start, xmlXPathObjectPtr end);
Create a new xmlXPathObjectPtr of type range using 2 Points
| start : | the starting point | 
| end : | the ending point | 
| Returns : | the newly created object. | 
xmlXPathObjectPtr xmlXPtrNewRangeNodePoint (xmlNodePtr start, xmlXPathObjectPtr end);
Create a new xmlXPathObjectPtr of type range from a node to a point
| start : | the starting node | 
| end : | the ending point | 
| Returns : | the newly created object. | 
xmlXPathObjectPtr xmlXPtrNewRangePointNode (xmlXPathObjectPtr start, xmlNodePtr end);
Create a new xmlXPathObjectPtr of type range from a point to a node
| start : | the starting point | 
| end : | the ending node | 
| Returns : | the newly created object. | 
xmlXPathObjectPtr xmlXPtrNewRangeNodes (xmlNodePtr start, xmlNodePtr end);
Create a new xmlXPathObjectPtr of type range using 2 nodes
| start : | the starting node | 
| end : | the ending node | 
| Returns : | the newly created object. | 
xmlXPathObjectPtr xmlXPtrNewLocationSetNodes (xmlNodePtr start, xmlNodePtr end);
Create a new xmlXPathObjectPtr of type LocationSet and initialize it with the single range made of the two nodes start and end
| start : | the start NodePtr value | 
| end : | the end NodePtr value or NULL | 
| Returns : | the newly created object. | 
xmlXPathObjectPtr xmlXPtrNewLocationSetNodeSet (xmlNodeSetPtr set);
Create a new xmlXPathObjectPtr of type LocationSet and initialize it with all the nodes from set
| set : | a node set | 
| Returns : | the newly created object. | 
xmlXPathObjectPtr xmlXPtrNewRangeNodeObject (xmlNodePtr start, xmlXPathObjectPtr end);
Create a new xmlXPathObjectPtr of type range from a not to an object
| start : | the starting node | 
| end : | the ending object | 
| Returns : | the newly created object. | 
xmlXPathObjectPtr xmlXPtrNewCollapsedRange (xmlNodePtr start);
Create a new xmlXPathObjectPtr of type range using a single nodes
| start : | the starting and ending node | 
| Returns : | the newly created object. | 
void xmlXPtrLocationSetAdd (xmlLocationSetPtr cur, xmlXPathObjectPtr val);
add a new xmlXPathObjectPtr to an existing LocationSet If the location already exist in the set val is freed.
| cur : | the initial range set | 
| val : | a new xmlXPathObjectPtr | 
xmlXPathObjectPtr xmlXPtrWrapLocationSet (xmlLocationSetPtr val);
Wrap the LocationSet val in a new xmlXPathObjectPtr
| val : | the LocationSet value | 
| Returns : | the newly created object. | 
void xmlXPtrLocationSetDel (xmlLocationSetPtr cur, xmlXPathObjectPtr val);
Removes an xmlXPathObjectPtr from an existing LocationSet
| cur : | the initial range set | 
| val : | an xmlXPathObjectPtr | 
void xmlXPtrLocationSetRemove (xmlLocationSetPtr cur, int val);
Removes an entry from an existing LocationSet list.
| cur : | the initial range set | 
| val : | the index to remove | 
xmlXPathContextPtr xmlXPtrNewContext (xmlDocPtr doc, xmlNodePtr here, xmlNodePtr origin);
Create a new XPointer context
| doc : | the XML document | 
| here : | the node that directly contains the XPointer being evaluated or NULL | 
| origin : | the element from which a user or program initiated traversal of the link, or NULL. | 
| Returns : | the xmlXPathContext just allocated. | 
xmlXPathObjectPtr xmlXPtrEval (const xmlChar *str, xmlXPathContextPtr ctx);
Evaluate the XPath Location Path in the given context.
| str : | the XPointer expression | 
| ctx : | the XPointer context | 
| Returns : | the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object. | 
void xmlXPtrRangeToFunction (xmlXPathParserContextPtr ctxt, int nargs);
Implement the range-
| ctxt : | the XPointer Parser context | 
| nargs : | the number of args | 
xmlNodePtr xmlXPtrBuildNodeList (xmlXPathObjectPtr obj);
Build a node list tree copy of the XPointer result. This will drop Attributes and Namespace declarations.
| obj : | the XPointer result from the evaluation. | 
| Returns : | an xmlNodePtr list or NULL. the caller has to free the node tree. | 
void xmlXPtrEvalRangePredicate (xmlXPathParserContextPtr ctxt);
[8] Predicate ::= '[' PredicateExpr ']' [9] PredicateExpr ::= Expr
Evaluate a predicate as in xmlXPathEvalPredicate() but for a Location Set instead of a node set
| ctxt : | the XPointer Parser context | 
| << xpathInternals | xinclude >> |