  
    
    
    
    
    
    
    
  
  
    
      
        
          
libxml2-xpathInternals.html            
Prev          
        
        
          
general.html            
Up          
        
        
          
index.html            
Home          
        
        
libxml2 Reference Manual      
    
    
      
xpointer    
    
xpointer - API to handle XML Pointers
    
API to handle XML Pointers Base implementation was made accordingly to W3C Candidate Recommendation 7 June 2000
    
Author(s): Daniel Veillard 
    
      
Synopsis
      
typedef struct _xmlLocationSet #xmlLocationSetxmlLocationSet ;
typedef 
libxml2-xpointer.html#xmlLocationSetxmlLocationSet  * #xmlLocationSetPtrxmlLocationSetPtr ;
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	#xmlXPtrNewRangexmlXPtrNewRange 	( libxml2-tree.html#xmlNodePtrxmlNodePtr  start, 					 int startindex, 					 libxml2-tree.html#xmlNodePtrxmlNodePtr  end, 					 int endindex);
void	
#xmlXPtrFreeLocationSetxmlXPtrFreeLocationSet 		( libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr  obj);
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	#xmlXPtrWrapLocationSetxmlXPtrWrapLocationSet 	( libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr  val);
libxml2-tree.html#xmlNodePtrxmlNodePtr 	#xmlXPtrBuildNodeListxmlXPtrBuildNodeList 	( libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  obj);
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	#xmlXPtrEvalxmlXPtrEval 	(const libxml2-xmlstring.html#xmlCharxmlChar  * str, 					 libxml2-xpath.html#xmlXPathContextPtrxmlXPathContextPtr  ctx);
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	#xmlXPtrNewRangeNodesxmlXPtrNewRangeNodes 	( libxml2-tree.html#xmlNodePtrxmlNodePtr  start, 						 libxml2-tree.html#xmlNodePtrxmlNodePtr  end);
void	
#xmlXPtrLocationSetAddxmlXPtrLocationSetAdd 		( libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr  cur, 					 libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  val);
void	
#xmlXPtrRangeToFunctionxmlXPtrRangeToFunction 		( libxml2-xpath.html#xmlXPathParserContextPtrxmlXPathParserContextPtr  ctxt, 					 int nargs);
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	#xmlXPtrNewCollapsedRangexmlXPtrNewCollapsedRange 	( libxml2-tree.html#xmlNodePtrxmlNodePtr  start);
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	#xmlXPtrNewRangePointsxmlXPtrNewRangePoints 	( libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  start, 						 libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  end);
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	#xmlXPtrNewLocationSetNodeSetxmlXPtrNewLocationSetNodeSet 	( libxml2-xpath.html#xmlNodeSetPtrxmlNodeSetPtr  set);
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	#xmlXPtrNewRangePointNodexmlXPtrNewRangePointNode 	( libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  start, 							 libxml2-tree.html#xmlNodePtrxmlNodePtr  end);
libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr 	#xmlXPtrLocationSetCreatexmlXPtrLocationSetCreate 	( libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  val);
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	#xmlXPtrNewRangeNodeObjectxmlXPtrNewRangeNodeObject 	( libxml2-tree.html#xmlNodePtrxmlNodePtr  start, 							 libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  end);
libxml2-xpath.html#xmlXPathContextPtrxmlXPathContextPtr 	#xmlXPtrNewContextxmlXPtrNewContext 	( libxml2-tree.html#xmlDocPtrxmlDocPtr  doc, 						 libxml2-tree.html#xmlNodePtrxmlNodePtr  here, 						 libxml2-tree.html#xmlNodePtrxmlNodePtr  origin);
void	
#xmlXPtrLocationSetRemovexmlXPtrLocationSetRemove 	( libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr  cur, 					 int val);
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	#xmlXPtrNewRangeNodePointxmlXPtrNewRangeNodePoint 	( libxml2-tree.html#xmlNodePtrxmlNodePtr  start, 							 libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  end);
void	
#xmlXPtrLocationSetDelxmlXPtrLocationSetDel 		( libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr  cur, 					 libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  val);
libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr 	#xmlXPtrLocationSetMergexmlXPtrLocationSetMerge 	( libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr  val1, 						 libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr  val2);
void	
#xmlXPtrEvalRangePredicatexmlXPtrEvalRangePredicate 	( libxml2-xpath.html#xmlXPathParserContextPtrxmlXPathParserContextPtr  ctxt);
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	#xmlXPtrNewLocationSetNodesxmlXPtrNewLocationSetNodes 	( libxml2-tree.html#xmlNodePtrxmlNodePtr  start, 							 libxml2-tree.html#xmlNodePtrxmlNodePtr  end);
    
    
      
Description
    
    
      
Details
      
        
Structure xmlLocationSet
struct _xmlLocationSet {
    int	locNr	: number of locations in the set
    int	locMax	: size of the array as allocated
    
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  *	locTab	: array of locations
} xmlLocationSet;
        
        
Typedef xmlLocationSetPtr
libxml2-xpointer.html#xmlLocationSetxmlLocationSet  * xmlLocationSetPtr;
        
        
xmlXPtrBuildNodeList ()
libxml2-tree.html#xmlNodePtrxmlNodePtr 	xmlXPtrBuildNodeList	( libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  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 libxml2-tree.html#xmlNodePtrxmlNodePtr  list or NULL. the caller has to free the node tree.         
        
xmlXPtrEval ()
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	xmlXPtrEval	(const libxml2-xmlstring.html#xmlCharxmlChar  * str, 					 libxml2-xpath.html#xmlXPathContextPtrxmlXPathContextPtr  ctx)Evaluate the XPath Location Path in the given context.
str: the XPointer expression ctx: the XPointer context Returns: the libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  resulting from the evaluation or NULL. the caller has to free the object.         
        
xmlXPtrEvalRangePredicate ()
void	xmlXPtrEvalRangePredicate	( libxml2-xpath.html#xmlXPathParserContextPtrxmlXPathParserContextPtr  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         
        
xmlXPtrFreeLocationSet ()
void	xmlXPtrFreeLocationSet		( libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr  obj)Free the LocationSet compound (not the actual ranges !).
obj: the libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr  to free         
        
xmlXPtrLocationSetAdd ()
void	xmlXPtrLocationSetAdd		( libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr  cur, 					 libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  val)add a new libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  to an existing LocationSet If the location already exist in the set @val is freed.
cur: the initial range set val: a new libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr         
        
xmlXPtrLocationSetCreate ()
libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr 	xmlXPtrLocationSetCreate	( libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  val)Create a new libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr  of type double and of value @val
val: an initial xmlXPathObjectPtr, or NULL Returns: the newly created object.         
        
xmlXPtrLocationSetDel ()
void	xmlXPtrLocationSetDel		( libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr  cur, 					 libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  val)Removes an libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  from an existing LocationSet
cur: the initial range set val: an libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr         
        
xmlXPtrLocationSetMerge ()
libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr 	xmlXPtrLocationSetMerge	( libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr  val1, 						 libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr  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.         
        
xmlXPtrLocationSetRemove ()
void	xmlXPtrLocationSetRemove	( libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr  cur, 					 int val)Removes an entry from an existing LocationSet list.
cur: the initial range set val: the index to remove         
        
xmlXPtrNewCollapsedRange ()
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	xmlXPtrNewCollapsedRange	( libxml2-tree.html#xmlNodePtrxmlNodePtr  start)Create a new libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  of type range using a single nodes
start: the starting and ending node Returns: the newly created object.         
        
xmlXPtrNewContext ()
libxml2-xpath.html#xmlXPathContextPtrxmlXPathContextPtr 	xmlXPtrNewContext	( libxml2-tree.html#xmlDocPtrxmlDocPtr  doc, 						 libxml2-tree.html#xmlNodePtrxmlNodePtr  here, 						 libxml2-tree.html#xmlNodePtrxmlNodePtr  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 libxml2-xpath.html#xmlXPathContextxmlXPathContext  just allocated.         
        
xmlXPtrNewLocationSetNodeSet ()
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	xmlXPtrNewLocationSetNodeSet	( libxml2-xpath.html#xmlNodeSetPtrxmlNodeSetPtr  set)Create a new libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  of type LocationSet and initialize it with all the nodes from @set
set: a node set Returns: the newly created object.         
        
xmlXPtrNewLocationSetNodes ()
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	xmlXPtrNewLocationSetNodes	( libxml2-tree.html#xmlNodePtrxmlNodePtr  start, 							 libxml2-tree.html#xmlNodePtrxmlNodePtr  end)Create a new libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  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.         
        
xmlXPtrNewRange ()
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	xmlXPtrNewRange	( libxml2-tree.html#xmlNodePtrxmlNodePtr  start, 					 int startindex, 					 libxml2-tree.html#xmlNodePtrxmlNodePtr  end, 					 int endindex)Create a new libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  of type range
start: the starting node startindex: the start index end: the ending point endindex: the ending index Returns: the newly created object.         
        
xmlXPtrNewRangeNodeObject ()
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	xmlXPtrNewRangeNodeObject	( libxml2-tree.html#xmlNodePtrxmlNodePtr  start, 							 libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  end)Create a new libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  of type range from a not to an object
start: the starting node end: the ending object Returns: the newly created object.         
        
xmlXPtrNewRangeNodePoint ()
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	xmlXPtrNewRangeNodePoint	( libxml2-tree.html#xmlNodePtrxmlNodePtr  start, 							 libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  end)Create a new libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  of type range from a node to a point
start: the starting node end: the ending point Returns: the newly created object.         
        
xmlXPtrNewRangeNodes ()
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	xmlXPtrNewRangeNodes	( libxml2-tree.html#xmlNodePtrxmlNodePtr  start, 						 libxml2-tree.html#xmlNodePtrxmlNodePtr  end)Create a new libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  of type range using 2 nodes
start: the starting node end: the ending node Returns: the newly created object.         
        
xmlXPtrNewRangePointNode ()
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	xmlXPtrNewRangePointNode	( libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  start, 							 libxml2-tree.html#xmlNodePtrxmlNodePtr  end)Create a new libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  of type range from a point to a node
start: the starting point end: the ending node Returns: the newly created object.         
        
xmlXPtrNewRangePoints ()
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	xmlXPtrNewRangePoints	( libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  start, 						 libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  end)Create a new libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr  of type range using 2 Points
start: the starting point end: the ending point Returns: the newly created object.         
        
xmlXPtrRangeToFunction ()
void	xmlXPtrRangeToFunction		( libxml2-xpath.html#xmlXPathParserContextPtrxmlXPathParserContextPtr  ctxt, 					 int nargs)Implement the range-to() XPointer function
ctxt: the XPointer Parser context nargs: the number of args         
        
xmlXPtrWrapLocationSet ()
libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 	xmlXPtrWrapLocationSet	( libxml2-xpointer.html#xmlLocationSetPtrxmlLocationSetPtr  val)Wrap the LocationSet @val in a new libxml2-xpath.html#xmlXPathObjectPtrxmlXPathObjectPtr 
val: the LocationSet value Returns: the newly created object.         
      
    
  
