API to handle XML Pointers Base implementation was made accordingly to W3C Candidate Recommendation 7 June 2000 Table of ContentsStructure xmlLocationSet struct _xmlLocationSet
Typedef xmlLocationSet * xmlLocationSetPtr
xmlNodePtr xmlXPtrBuildNodeList (xmlXPathObjectPtr obj)
xmlXPathObjectPtr xmlXPtrEval (const xmlChar * str, xmlXPathContextPtr ctx)
void xmlXPtrEvalRangePredicate (xmlXPathParserContextPtr ctxt)
void xmlXPtrFreeLocationSet (xmlLocationSetPtr obj)
void xmlXPtrLocationSetAdd (xmlLocationSetPtr cur, xmlXPathObjectPtr val)
xmlLocationSetPtr xmlXPtrLocationSetCreate (xmlXPathObjectPtr val)
void xmlXPtrLocationSetDel (xmlLocationSetPtr cur, xmlXPathObjectPtr val)
xmlLocationSetPtr xmlXPtrLocationSetMerge (xmlLocationSetPtr val1, xmlLocationSetPtr val2)
void xmlXPtrLocationSetRemove (xmlLocationSetPtr cur, int val)
xmlXPathObjectPtr xmlXPtrNewCollapsedRange (xmlNodePtr start)
xmlXPathContextPtr xmlXPtrNewContext (xmlDocPtr doc, xmlNodePtr here, xmlNodePtr origin)
xmlXPathObjectPtr xmlXPtrNewLocationSetNodeSet (xmlNodeSetPtr set)
xmlXPathObjectPtr xmlXPtrNewLocationSetNodes (xmlNodePtr start, xmlNodePtr end)
xmlXPathObjectPtr xmlXPtrNewRange (xmlNodePtr start, int startindex, xmlNodePtr end, int endindex)
xmlXPathObjectPtr xmlXPtrNewRangeNodeObject (xmlNodePtr start, xmlXPathObjectPtr end)
xmlXPathObjectPtr xmlXPtrNewRangeNodePoint (xmlNodePtr start, xmlXPathObjectPtr end)
xmlXPathObjectPtr xmlXPtrNewRangeNodes (xmlNodePtr start, xmlNodePtr end)
xmlXPathObjectPtr xmlXPtrNewRangePointNode (xmlXPathObjectPtr start, xmlNodePtr end)
xmlXPathObjectPtr xmlXPtrNewRangePoints (xmlXPathObjectPtr start, xmlXPathObjectPtr end)
void xmlXPtrRangeToFunction (xmlXPathParserContextPtr ctxt, int nargs)
xmlXPathObjectPtr xmlXPtrWrapLocationSet (xmlLocationSetPtr val)
Description
Structure xmlLocationSet struct _xmlLocationSet {
int locNr : number of locations in the set
int locMax : size of the array as allocated
xmlXPathObjectPtr * locTab : array of locations
} Function: xmlXPtrBuildNodeListxmlNodePtr 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. |
Function: xmlXPtrEvalxmlXPathObjectPtr 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. |
Function: xmlXPtrEvalRangePredicatevoid 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 |
Function: xmlXPtrFreeLocationSetvoid xmlXPtrFreeLocationSet (xmlLocationSetPtr obj)
Free the LocationSet compound (not the actual ranges !).
Function: xmlXPtrLocationSetAddvoid xmlXPtrLocationSetAdd (xmlLocationSetPtr cur, xmlXPathObjectPtr val)
add a new xmlXPathObjectPtr to an existing LocationSet If the location already exist in the set @val is freed.
Function: xmlXPtrLocationSetCreatexmlLocationSetPtr 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. |
Function: xmlXPtrLocationSetDelvoid xmlXPtrLocationSetDel (xmlLocationSetPtr cur, xmlXPathObjectPtr val)
Removes an xmlXPathObjectPtr from an existing LocationSet
Function: xmlXPtrLocationSetMergexmlLocationSetPtr 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. |
Function: xmlXPtrLocationSetRemovevoid xmlXPtrLocationSetRemove (xmlLocationSetPtr cur, int val)
Removes an entry from an existing LocationSet list.
cur: | the initial range set | val: | the index to remove |
Function: xmlXPtrNewCollapsedRangexmlXPathObjectPtr 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. |
Function: xmlXPtrNewContextxmlXPathContextPtr 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. |
Function: xmlXPtrNewLocationSetNodeSetxmlXPathObjectPtr 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. |
Function: xmlXPtrNewLocationSetNodesxmlXPathObjectPtr 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. |
Function: xmlXPtrNewRangexmlXPathObjectPtr 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. |
Function: xmlXPtrNewRangeNodeObjectxmlXPathObjectPtr 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. |
Function: xmlXPtrNewRangeNodePointxmlXPathObjectPtr 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. |
Function: xmlXPtrNewRangeNodesxmlXPathObjectPtr 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. |
Function: xmlXPtrNewRangePointNodexmlXPathObjectPtr 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. |
Function: xmlXPtrNewRangePointsxmlXPathObjectPtr 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. |
Function: xmlXPtrRangeToFunctionvoid xmlXPtrRangeToFunction (xmlXPathParserContextPtr ctxt, int nargs)
Implement the range-to() XPointer function
ctxt: | the XPointer Parser context | nargs: | the number of args |
Function: xmlXPtrWrapLocationSetxmlXPathObjectPtr xmlXPtrWrapLocationSet (xmlLocationSetPtr val)
Wrap the LocationSet @val in a new xmlXPathObjectPtr
val: | the LocationSet value | Returns: | the newly created object. |
Daniel Veillard |