Preparing a new release:
- configure.in: 2.3.5
- doc/html/*: rebuilt the docs
Daniel
diff --git a/doc/html/libxml-xpath.html b/doc/html/libxml-xpath.html
index e1ea9b2..7882486 100644
--- a/doc/html/libxml-xpath.html
+++ b/doc/html/libxml-xpath.html
@@ -121,7 +121,7 @@
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN10606"
+NAME="AEN10610"
></A
><H2
>Name</H2
@@ -129,7 +129,7 @@
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN10609"
+NAME="AEN10613"
></A
><H2
>Synopsis</H2
@@ -249,6 +249,14 @@
HREF="libxml-xpath.html#XMLXPATHAXISPTR"
>xmlXPathAxisPtr</A
>;
+struct <A
+HREF="libxml-xpath.html#XMLXPATHCOMPEXPR"
+>xmlXPathCompExpr</A
+>;
+typedef <A
+HREF="libxml-xpath.html#XMLXPATHCOMPEXPRPTR"
+>xmlXPathCompExprPtr</A
+>;
void (<A
HREF="libxml-xpath.html#XMLXPATHFUNCTION"
>*xmlXPathFunction</A
@@ -258,6 +266,88 @@
> ctxt,
int nargs);
void <A
+HREF="libxml-xpath.html#XMLXPATHFREEOBJECT"
+>xmlXPathFreeObject</A
+> (<A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> obj);
+<A
+HREF="libxml-xpath.html#XMLNODESETPTR"
+>xmlNodeSetPtr</A
+> <A
+HREF="libxml-xpath.html#XMLXPATHNODESETCREATE"
+>xmlXPathNodeSetCreate</A
+> (<A
+HREF="libxml-tree.html#XMLNODEPTR"
+>xmlNodePtr</A
+> val);
+void <A
+HREF="libxml-xpath.html#XMLXPATHFREENODESETLIST"
+>xmlXPathFreeNodeSetList</A
+> (<A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> obj);
+void <A
+HREF="libxml-xpath.html#XMLXPATHFREENODESET"
+>xmlXPathFreeNodeSet</A
+> (<A
+HREF="libxml-xpath.html#XMLNODESETPTR"
+>xmlNodeSetPtr</A
+> obj);
+<A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> <A
+HREF="libxml-xpath.html#XMLXPATHOBJECTCOPY"
+>xmlXPathObjectCopy</A
+> (<A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> val);
+int <A
+HREF="libxml-xpath.html#XMLXPATHCMPNODES"
+>xmlXPathCmpNodes</A
+> (<A
+HREF="libxml-tree.html#XMLNODEPTR"
+>xmlNodePtr</A
+> node1,
+ <A
+HREF="libxml-tree.html#XMLNODEPTR"
+>xmlNodePtr</A
+> node2);
+<A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> <A
+HREF="libxml-xpath.html#XMLXPATHCONVERTBOOLEAN"
+>xmlXPathConvertBoolean</A
+> (<A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> val);
+<A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> <A
+HREF="libxml-xpath.html#XMLXPATHCONVERTNUMBER"
+>xmlXPathConvertNumber</A
+> (<A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> val);
+<A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> <A
+HREF="libxml-xpath.html#XMLXPATHCONVERTSTRING"
+>xmlXPathConvertString</A
+> (<A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> val);
+void <A
HREF="libxml-xpath.html#XMLXPATHINIT"
>xmlXPathInit</A
> (void);
@@ -306,13 +396,6 @@
HREF="libxml-xpath.html#XMLXPATHCONTEXTPTR"
>xmlXPathContextPtr</A
> ctxt);
-void <A
-HREF="libxml-xpath.html#XMLXPATHFREEOBJECT"
->xmlXPathFreeObject</A
-> (<A
-HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
->xmlXPathObjectPtr</A
-> obj);
<A
HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
>xmlXPathObjectPtr</A
@@ -327,51 +410,48 @@
HREF="libxml-xpath.html#XMLXPATHCONTEXTPTR"
>xmlXPathContextPtr</A
> ctxt);
-<A
-HREF="libxml-xpath.html#XMLNODESETPTR"
->xmlNodeSetPtr</A
-> <A
-HREF="libxml-xpath.html#XMLXPATHNODESETCREATE"
->xmlXPathNodeSetCreate</A
-> (<A
-HREF="libxml-tree.html#XMLNODEPTR"
->xmlNodePtr</A
-> val);
-void <A
-HREF="libxml-xpath.html#XMLXPATHFREENODESETLIST"
->xmlXPathFreeNodeSetList</A
-> (<A
-HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
->xmlXPathObjectPtr</A
-> obj);
-void <A
-HREF="libxml-xpath.html#XMLXPATHFREENODESET"
->xmlXPathFreeNodeSet</A
-> (<A
-HREF="libxml-xpath.html#XMLNODESETPTR"
->xmlNodeSetPtr</A
-> obj);
-<A
-HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
->xmlXPathObjectPtr</A
-> <A
-HREF="libxml-xpath.html#XMLXPATHOBJECTCOPY"
->xmlXPathObjectCopy</A
-> (<A
-HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
->xmlXPathObjectPtr</A
-> val);
int <A
-HREF="libxml-xpath.html#XMLXPATHCMPNODES"
->xmlXPathCmpNodes</A
-> (<A
-HREF="libxml-tree.html#XMLNODEPTR"
->xmlNodePtr</A
-> node1,
+HREF="libxml-xpath.html#XMLXPATHEVALPREDICATE"
+>xmlXPathEvalPredicate</A
+> (<A
+HREF="libxml-xpath.html#XMLXPATHCONTEXTPTR"
+>xmlXPathContextPtr</A
+> ctxt,
<A
-HREF="libxml-tree.html#XMLNODEPTR"
->xmlNodePtr</A
-> node2);</PRE
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> res);
+<A
+HREF="libxml-xpath.html#XMLXPATHCOMPEXPRPTR"
+>xmlXPathCompExprPtr</A
+> <A
+HREF="libxml-xpath.html#XMLXPATHCOMPILE"
+>xmlXPathCompile</A
+> (const <A
+HREF="libxml-tree.html#XMLCHAR"
+>xmlChar</A
+> *str);
+<A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> <A
+HREF="libxml-xpath.html#XMLXPATHCOMPILEDEVAL"
+>xmlXPathCompiledEval</A
+> (<A
+HREF="libxml-xpath.html#XMLXPATHCOMPEXPRPTR"
+>xmlXPathCompExprPtr</A
+> comp,
+ <A
+HREF="libxml-xpath.html#XMLXPATHCONTEXTPTR"
+>xmlXPathContextPtr</A
+> ctx);
+void <A
+HREF="libxml-xpath.html#XMLXPATHFREECOMPEXPR"
+>xmlXPathFreeCompExpr</A
+> (<A
+HREF="libxml-xpath.html#XMLXPATHCOMPEXPRPTR"
+>xmlXPathCompExprPtr</A
+> comp);</PRE
></TD
></TR
></TABLE
@@ -379,7 +459,7 @@
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN10674"
+NAME="AEN10701"
></A
><H2
>Description</H2
@@ -389,14 +469,14 @@
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN10677"
+NAME="AEN10704"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10679"
+NAME="AEN10706"
></A
><H3
><A
@@ -463,7 +543,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10684"
+NAME="AEN10711"
></A
><H3
><A
@@ -489,7 +569,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10689"
+NAME="AEN10716"
></A
><H3
><A
@@ -516,6 +596,9 @@
int valueNr; /* number of values stacked */
int valueMax; /* max number of values stacked */
xmlXPathObjectPtr *valueTab; /* stack of values */
+
+ xmlXPathCompExprPtr comp; /* the precompiled expression */
+ int xptr; /* it this an XPointer expression */
};</PRE
></TD
></TR
@@ -526,7 +609,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10694"
+NAME="AEN10721"
></A
><H3
><A
@@ -552,7 +635,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10699"
+NAME="AEN10726"
></A
><H3
><A
@@ -606,7 +689,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10706"
+NAME="AEN10733"
></A
><H3
><A
@@ -636,7 +719,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10711"
+NAME="AEN10738"
></A
><H3
><A
@@ -662,7 +745,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10716"
+NAME="AEN10743"
></A
><H3
><A
@@ -699,7 +782,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10721"
+NAME="AEN10748"
></A
><H3
><A
@@ -735,7 +818,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10726"
+NAME="AEN10753"
></A
><H3
><A
@@ -794,7 +877,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10741"
+NAME="AEN10768"
></A
><H3
><A
@@ -888,7 +971,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10764"
+NAME="AEN10791"
></A
><H3
><A
@@ -917,7 +1000,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10769"
+NAME="AEN10796"
></A
><H3
><A
@@ -943,7 +1026,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10774"
+NAME="AEN10801"
></A
><H3
><A
@@ -972,7 +1055,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10779"
+NAME="AEN10806"
></A
><H3
><A
@@ -998,7 +1081,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10784"
+NAME="AEN10811"
></A
><H3
><A
@@ -1077,7 +1160,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10803"
+NAME="AEN10830"
></A
><H3
><A
@@ -1106,7 +1189,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10808"
+NAME="AEN10835"
></A
><H3
><A
@@ -1132,7 +1215,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10813"
+NAME="AEN10840"
></A
><H3
><A
@@ -1232,7 +1315,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10838"
+NAME="AEN10865"
></A
><H3
><A
@@ -1261,7 +1344,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10843"
+NAME="AEN10870"
></A
><H3
><A
@@ -1287,7 +1370,65 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10848"
+NAME="AEN10875"
+></A
+><H3
+><A
+NAME="XMLXPATHCOMPEXPR"
+></A
+>struct xmlXPathCompExpr</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>struct xmlXPathCompExpr;</PRE
+></TD
+></TR
+></TABLE
+><P
+>[14] Expr ::= OrExpr
+[21] OrExpr ::= AndExpr
+| OrExpr 'or' AndExpr </P
+><P
+>Parse and compile an expression</P
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN10882"
+></A
+><H3
+><A
+NAME="XMLXPATHCOMPEXPRPTR"
+></A
+>xmlXPathCompExprPtr</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>typedef xmlXPathCompExpr *xmlXPathCompExprPtr;</PRE
+></TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN10887"
></A
><H3
><A
@@ -1366,7 +1507,742 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10867"
+NAME="AEN10906"
+></A
+><H3
+><A
+NAME="XMLXPATHFREEOBJECT"
+></A
+>xmlXPathFreeObject ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlXPathFreeObject (<A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> obj);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Free up an xmlXPathObjectPtr object.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>obj</I
+></TT
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the object to free</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN10922"
+></A
+><H3
+><A
+NAME="XMLXPATHNODESETCREATE"
+></A
+>xmlXPathNodeSetCreate ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><A
+HREF="libxml-xpath.html#XMLNODESETPTR"
+>xmlNodeSetPtr</A
+> xmlXPathNodeSetCreate (<A
+HREF="libxml-tree.html#XMLNODEPTR"
+>xmlNodePtr</A
+> val);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Create a new xmlNodeSetPtr of type double and of value <TT
+CLASS="PARAMETER"
+><I
+>val</I
+></TT
+></P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>val</I
+></TT
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> an initial xmlNodePtr, or NULL</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the newly created object.</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN10944"
+></A
+><H3
+><A
+NAME="XMLXPATHFREENODESETLIST"
+></A
+>xmlXPathFreeNodeSetList ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlXPathFreeNodeSetList (<A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> obj);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Free up the xmlXPathObjectPtr <TT
+CLASS="PARAMETER"
+><I
+>obj</I
+></TT
+> but don't deallocate the objects in
+the list contrary to <A
+HREF="libxml-xpath.html#XMLXPATHFREEOBJECT"
+>xmlXPathFreeObject</A
+>().</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>obj</I
+></TT
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> an existing NodeSetList object</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN10962"
+></A
+><H3
+><A
+NAME="XMLXPATHFREENODESET"
+></A
+>xmlXPathFreeNodeSet ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlXPathFreeNodeSet (<A
+HREF="libxml-xpath.html#XMLNODESETPTR"
+>xmlNodeSetPtr</A
+> obj);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Free the NodeSet compound (not the actual nodes !).</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>obj</I
+></TT
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the xmlNodeSetPtr to free</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN10978"
+></A
+><H3
+><A
+NAME="XMLXPATHOBJECTCOPY"
+></A
+>xmlXPathObjectCopy ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> xmlXPathObjectCopy (<A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> val);</PRE
+></TD
+></TR
+></TABLE
+><P
+>allocate a new copy of a given object</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>val</I
+></TT
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the original object</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the newly created object.</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN10999"
+></A
+><H3
+><A
+NAME="XMLXPATHCMPNODES"
+></A
+>xmlXPathCmpNodes ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xmlXPathCmpNodes (<A
+HREF="libxml-tree.html#XMLNODEPTR"
+>xmlNodePtr</A
+> node1,
+ <A
+HREF="libxml-tree.html#XMLNODEPTR"
+>xmlNodePtr</A
+> node2);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Compare two nodes w.r.t document order</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>node1</I
+></TT
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the first node</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>node2</I
+></TT
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the second node</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>-2 in case of error 1 if first point < second point, 0 if
+that's the same node, -1 otherwise</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN11024"
+></A
+><H3
+><A
+NAME="XMLXPATHCONVERTBOOLEAN"
+></A
+>xmlXPathConvertBoolean ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> xmlXPathConvertBoolean (<A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> val);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Converts an existing object to its <GTKDOCLINK
+HREF="BOOLEAN"
+>boolean</GTKDOCLINK
+>() equivalent</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>val</I
+></TT
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> an XPath object</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the new object, the old one is freed (or the operation
+is done directly on <TT
+CLASS="PARAMETER"
+><I
+>val</I
+></TT
+>)</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN11047"
+></A
+><H3
+><A
+NAME="XMLXPATHCONVERTNUMBER"
+></A
+>xmlXPathConvertNumber ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> xmlXPathConvertNumber (<A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> val);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Converts an existing object to its <GTKDOCLINK
+HREF="NUMBER"
+>number</GTKDOCLINK
+>() equivalent</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>val</I
+></TT
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> an XPath object</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the new object, the old one is freed (or the operation
+is done directly on <TT
+CLASS="PARAMETER"
+><I
+>val</I
+></TT
+>)</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN11070"
+></A
+><H3
+><A
+NAME="XMLXPATHCONVERTSTRING"
+></A
+>xmlXPathConvertString ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> xmlXPathConvertString (<A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> val);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Converts an existing object to its <GTKDOCLINK
+HREF="STRING"
+>string</GTKDOCLINK
+>() equivalent</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>val</I
+></TT
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> an XPath object</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the new object, the old one is freed (or the operation
+is done directly on <TT
+CLASS="PARAMETER"
+><I
+>val</I
+></TT
+>)</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN11093"
></A
><H3
><A
@@ -1394,7 +2270,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10873"
+NAME="AEN11099"
></A
><H3
><A
@@ -1475,7 +2351,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10894"
+NAME="AEN11120"
></A
><H3
><A
@@ -1538,7 +2414,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10910"
+NAME="AEN11136"
></A
><H3
><A
@@ -1641,7 +2517,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10936"
+NAME="AEN11162"
></A
><H3
><A
@@ -1741,70 +2617,7 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN10961"
-></A
-><H3
-><A
-NAME="XMLXPATHFREEOBJECT"
-></A
->xmlXPathFreeObject ()</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->void xmlXPathFreeObject (<A
-HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
->xmlXPathObjectPtr</A
-> obj);</PRE
-></TD
-></TR
-></TABLE
-><P
->Free up an xmlXPathObjectPtr object.</P
-><P
-></P
-><DIV
-CLASS="INFORMALTABLE"
-><P
-></P
-><TABLE
-BORDER="0"
-WIDTH="100%"
-BGCOLOR="#FFD0D0"
-CELLSPACING="0"
-CELLPADDING="4"
-CLASS="CALSTABLE"
-><TR
-><TD
-WIDTH="20%"
-ALIGN="RIGHT"
-VALIGN="TOP"
-><TT
-CLASS="PARAMETER"
-><I
->obj</I
-></TT
-> :</TD
-><TD
-WIDTH="80%"
-ALIGN="LEFT"
-VALIGN="TOP"
-> the object to free</TD
-></TR
-></TABLE
-><P
-></P
-></DIV
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN10977"
+NAME="AEN11187"
></A
><H3
><A
@@ -1907,13 +2720,13 @@
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN11003"
+NAME="AEN11213"
></A
><H3
><A
-NAME="XMLXPATHNODESETCREATE"
+NAME="XMLXPATHEVALPREDICATE"
></A
->xmlXPathNodeSetCreate ()</H3
+>xmlXPathEvalPredicate ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
@@ -1923,321 +2736,28 @@
><TD
><PRE
CLASS="PROGRAMLISTING"
-><A
-HREF="libxml-xpath.html#XMLNODESETPTR"
->xmlNodeSetPtr</A
-> xmlXPathNodeSetCreate (<A
-HREF="libxml-tree.html#XMLNODEPTR"
->xmlNodePtr</A
-> val);</PRE
-></TD
-></TR
-></TABLE
-><P
->Create a new xmlNodeSetPtr of type double and of value <TT
-CLASS="PARAMETER"
-><I
->val</I
-></TT
-></P
-><P
-></P
-><DIV
-CLASS="INFORMALTABLE"
-><P
-></P
-><TABLE
-BORDER="0"
-WIDTH="100%"
-BGCOLOR="#FFD0D0"
-CELLSPACING="0"
-CELLPADDING="4"
-CLASS="CALSTABLE"
-><TR
-><TD
-WIDTH="20%"
-ALIGN="RIGHT"
-VALIGN="TOP"
-><TT
-CLASS="PARAMETER"
-><I
->val</I
-></TT
-> :</TD
-><TD
-WIDTH="80%"
-ALIGN="LEFT"
-VALIGN="TOP"
-> an initial xmlNodePtr, or NULL</TD
-></TR
-><TR
-><TD
-WIDTH="20%"
-ALIGN="RIGHT"
-VALIGN="TOP"
-><I
-CLASS="EMPHASIS"
->Returns</I
-> :</TD
-><TD
-WIDTH="80%"
-ALIGN="LEFT"
-VALIGN="TOP"
->the newly created object.</TD
-></TR
-></TABLE
-><P
-></P
-></DIV
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11025"
-></A
-><H3
-><A
-NAME="XMLXPATHFREENODESETLIST"
-></A
->xmlXPathFreeNodeSetList ()</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->void xmlXPathFreeNodeSetList (<A
-HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
->xmlXPathObjectPtr</A
-> obj);</PRE
-></TD
-></TR
-></TABLE
-><P
->Free up the xmlXPathObjectPtr <TT
-CLASS="PARAMETER"
-><I
->obj</I
-></TT
-> but don't deallocate the objects in
-the list contrary to <A
-HREF="libxml-xpath.html#XMLXPATHFREEOBJECT"
->xmlXPathFreeObject</A
->().</P
-><P
-></P
-><DIV
-CLASS="INFORMALTABLE"
-><P
-></P
-><TABLE
-BORDER="0"
-WIDTH="100%"
-BGCOLOR="#FFD0D0"
-CELLSPACING="0"
-CELLPADDING="4"
-CLASS="CALSTABLE"
-><TR
-><TD
-WIDTH="20%"
-ALIGN="RIGHT"
-VALIGN="TOP"
-><TT
-CLASS="PARAMETER"
-><I
->obj</I
-></TT
-> :</TD
-><TD
-WIDTH="80%"
-ALIGN="LEFT"
-VALIGN="TOP"
-> an existing NodeSetList object</TD
-></TR
-></TABLE
-><P
-></P
-></DIV
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11043"
-></A
-><H3
-><A
-NAME="XMLXPATHFREENODESET"
-></A
->xmlXPathFreeNodeSet ()</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->void xmlXPathFreeNodeSet (<A
-HREF="libxml-xpath.html#XMLNODESETPTR"
->xmlNodeSetPtr</A
-> obj);</PRE
-></TD
-></TR
-></TABLE
-><P
->Free the NodeSet compound (not the actual nodes !).</P
-><P
-></P
-><DIV
-CLASS="INFORMALTABLE"
-><P
-></P
-><TABLE
-BORDER="0"
-WIDTH="100%"
-BGCOLOR="#FFD0D0"
-CELLSPACING="0"
-CELLPADDING="4"
-CLASS="CALSTABLE"
-><TR
-><TD
-WIDTH="20%"
-ALIGN="RIGHT"
-VALIGN="TOP"
-><TT
-CLASS="PARAMETER"
-><I
->obj</I
-></TT
-> :</TD
-><TD
-WIDTH="80%"
-ALIGN="LEFT"
-VALIGN="TOP"
-> the xmlNodeSetPtr to free</TD
-></TR
-></TABLE
-><P
-></P
-></DIV
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11059"
-></A
-><H3
-><A
-NAME="XMLXPATHOBJECTCOPY"
-></A
->xmlXPathObjectCopy ()</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
-><A
-HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
->xmlXPathObjectPtr</A
-> xmlXPathObjectCopy (<A
-HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
->xmlXPathObjectPtr</A
-> val);</PRE
-></TD
-></TR
-></TABLE
-><P
->allocate a new copy of a given object</P
-><P
-></P
-><DIV
-CLASS="INFORMALTABLE"
-><P
-></P
-><TABLE
-BORDER="0"
-WIDTH="100%"
-BGCOLOR="#FFD0D0"
-CELLSPACING="0"
-CELLPADDING="4"
-CLASS="CALSTABLE"
-><TR
-><TD
-WIDTH="20%"
-ALIGN="RIGHT"
-VALIGN="TOP"
-><TT
-CLASS="PARAMETER"
-><I
->val</I
-></TT
-> :</TD
-><TD
-WIDTH="80%"
-ALIGN="LEFT"
-VALIGN="TOP"
-> the original object</TD
-></TR
-><TR
-><TD
-WIDTH="20%"
-ALIGN="RIGHT"
-VALIGN="TOP"
-><I
-CLASS="EMPHASIS"
->Returns</I
-> :</TD
-><TD
-WIDTH="80%"
-ALIGN="LEFT"
-VALIGN="TOP"
->the newly created object.</TD
-></TR
-></TABLE
-><P
-></P
-></DIV
-></DIV
-><HR><DIV
-CLASS="REFSECT2"
-><A
-NAME="AEN11080"
-></A
-><H3
-><A
-NAME="XMLXPATHCMPNODES"
-></A
->xmlXPathCmpNodes ()</H3
-><TABLE
-BORDER="0"
-BGCOLOR="#D6E8FF"
-WIDTH="100%"
-CELLPADDING="6"
-><TR
-><TD
-><PRE
-CLASS="PROGRAMLISTING"
->int xmlXPathCmpNodes (<A
-HREF="libxml-tree.html#XMLNODEPTR"
->xmlNodePtr</A
-> node1,
+>int xmlXPathEvalPredicate (<A
+HREF="libxml-xpath.html#XMLXPATHCONTEXTPTR"
+>xmlXPathContextPtr</A
+> ctxt,
<A
-HREF="libxml-tree.html#XMLNODEPTR"
->xmlNodePtr</A
-> node2);</PRE
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> res);</PRE
></TD
></TR
></TABLE
><P
->Compare two nodes w.r.t document order</P
+>Evaluate a predicate result for the current node.
+A PredicateExpr is evaluated by evaluating the Expr and converting
+the result to a boolean. If the result is a number, the result will
+be converted to true if the number is equal to the position of the
+context node in the context node list (as returned by the position
+function) and will be converted to false otherwise; if the result
+is not a number, then the result will be converted as if by a call
+to the boolean function. </P
+><P
+>Return 1 if predicate is true, 0 otherwise</P
><P
></P
><DIV
@@ -2259,14 +2779,14 @@
><TT
CLASS="PARAMETER"
><I
->node1</I
+>ctxt</I
></TT
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
-> the first node</TD
+> the XPath context</TD
></TR
><TR
><TD
@@ -2276,14 +2796,14 @@
><TT
CLASS="PARAMETER"
><I
->node2</I
+>res</I
></TT
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
-> the second node</TD
+> the Predicate Expression evaluation result</TD
></TR
><TR
><TD
@@ -2298,8 +2818,260 @@
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
->-2 in case of error 1 if first point < second point, 0 if
-that's the same node, -1 otherwise</TD
+> </TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN11239"
+></A
+><H3
+><A
+NAME="XMLXPATHCOMPILE"
+></A
+>xmlXPathCompile ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><A
+HREF="libxml-xpath.html#XMLXPATHCOMPEXPRPTR"
+>xmlXPathCompExprPtr</A
+> xmlXPathCompile (const <A
+HREF="libxml-tree.html#XMLCHAR"
+>xmlChar</A
+> *str);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Compile an XPath expression</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>str</I
+></TT
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the XPath expression</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the xmlXPathObjectPtr resulting from the eveluation or NULL.
+the caller has to free the object.</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN11260"
+></A
+><H3
+><A
+NAME="XMLXPATHCOMPILEDEVAL"
+></A
+>xmlXPathCompiledEval ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+><A
+HREF="libxml-xpath.html#XMLXPATHOBJECTPTR"
+>xmlXPathObjectPtr</A
+> xmlXPathCompiledEval (<A
+HREF="libxml-xpath.html#XMLXPATHCOMPEXPRPTR"
+>xmlXPathCompExprPtr</A
+> comp,
+ <A
+HREF="libxml-xpath.html#XMLXPATHCONTEXTPTR"
+>xmlXPathContextPtr</A
+> ctx);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Evaluate the Precompiled XPath expression in the given context.</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>comp</I
+></TT
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the compiled XPath expression</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctx</I
+></TT
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the XPath context</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>the xmlXPathObjectPtr resulting from the eveluation or NULL.
+the caller has to free the object.</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN11286"
+></A
+><H3
+><A
+NAME="XMLXPATHFREECOMPEXPR"
+></A
+>xmlXPathFreeCompExpr ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>void xmlXPathFreeCompExpr (<A
+HREF="libxml-xpath.html#XMLXPATHCOMPEXPRPTR"
+>xmlXPathCompExprPtr</A
+> comp);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Free up the memory allocated by <TT
+CLASS="PARAMETER"
+><I
+>comp</I
+></TT
+></P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>comp</I
+></TT
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> an XPATH comp</TD
></TR
></TABLE
><P