1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>list: lists interfaces</title> 5<meta name="generator" content="Libxml2 devhelp stylesheet"> 6<link rel="start" href="index.html" title="libxml2 Reference Manual"> 7<link rel="up" href="general.html" title="API"> 8<link rel="stylesheet" href="style.css" type="text/css"> 9<link rel="chapter" href="general.html" title="API"> 10</head> 11<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 12<table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"> 13<td><a accesskey="p" href="libxml2-hash.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td> 14<td><a accesskey="u" href="general.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td> 15<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td> 16<td><a accesskey="n" href="libxml2-nanoftp.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> 17<th width="100%" align="center">libxml2 Reference Manual</th> 18</tr></table> 19<h2><span class="refentrytitle">list</span></h2> 20<p>list - lists interfaces</p> 21<p>this module implement the list support used in various place in the library. </p> 22<p>Author(s): Gary Pennington <[email protected]> </p> 23<div class="refsynopsisdiv"> 24<h2>Synopsis</h2> 25<pre class="synopsis">typedef struct _xmlLink <a href="#xmlLink">xmlLink</a>; 26typedef <a href="libxml2-list.html#xmlLink">xmlLink</a> * <a href="#xmlLinkPtr">xmlLinkPtr</a>; 27typedef struct _xmlList <a href="#xmlList">xmlList</a>; 28typedef <a href="libxml2-list.html#xmlList">xmlList</a> * <a href="#xmlListPtr">xmlListPtr</a>; 29void * <a href="#xmlLinkGetData">xmlLinkGetData</a> (<a href="libxml2-list.html#xmlLinkPtr">xmlLinkPtr</a> lk); 30int <a href="#xmlListAppend">xmlListAppend</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> void * data); 31void <a href="#xmlListClear">xmlListClear</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l); 32int <a href="#xmlListCopy">xmlListCopy</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> cur, <br> <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> old); 33<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> <a href="#xmlListCreate">xmlListCreate</a> (<a href="libxml2-list.html#xmlListDeallocator">xmlListDeallocator</a> deallocator, <br> <a href="libxml2-list.html#xmlListDataCompare">xmlListDataCompare</a> compare); 34typedef int <a href="#xmlListDataCompare">xmlListDataCompare</a> (const void * data0, <br> const void * data1); 35typedef void <a href="#xmlListDeallocator">xmlListDeallocator</a> (<a href="libxml2-list.html#xmlLinkPtr">xmlLinkPtr</a> lk); 36void <a href="#xmlListDelete">xmlListDelete</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l); 37<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> <a href="#xmlListDup">xmlListDup</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> old); 38int <a href="#xmlListEmpty">xmlListEmpty</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l); 39<a href="libxml2-list.html#xmlLinkPtr">xmlLinkPtr</a> <a href="#xmlListEnd">xmlListEnd</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l); 40<a href="libxml2-list.html#xmlLinkPtr">xmlLinkPtr</a> <a href="#xmlListFront">xmlListFront</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l); 41int <a href="#xmlListInsert">xmlListInsert</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> void * data); 42void <a href="#xmlListMerge">xmlListMerge</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l1, <br> <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l2); 43void <a href="#xmlListPopBack">xmlListPopBack</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l); 44void <a href="#xmlListPopFront">xmlListPopFront</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l); 45int <a href="#xmlListPushBack">xmlListPushBack</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> void * data); 46int <a href="#xmlListPushFront">xmlListPushFront</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> void * data); 47int <a href="#xmlListRemoveAll">xmlListRemoveAll</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> void * data); 48int <a href="#xmlListRemoveFirst">xmlListRemoveFirst</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> void * data); 49int <a href="#xmlListRemoveLast">xmlListRemoveLast</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> void * data); 50void <a href="#xmlListReverse">xmlListReverse</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l); 51void * <a href="#xmlListReverseSearch">xmlListReverseSearch</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> void * data); 52void <a href="#xmlListReverseWalk">xmlListReverseWalk</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br> void * user); 53void * <a href="#xmlListSearch">xmlListSearch</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> void * data); 54int <a href="#xmlListSize">xmlListSize</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l); 55void <a href="#xmlListSort">xmlListSort</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l); 56void <a href="#xmlListWalk">xmlListWalk</a> (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br> void * user); 57typedef int <a href="#xmlListWalker">xmlListWalker</a> (const void * data, <br> void * user); 58</pre> 59</div> 60<div class="refsect1" lang="en"><h2>Description</h2></div> 61<div class="refsect1" lang="en"> 62<h2>Details</h2> 63<div class="refsect2" lang="en"> 64<div class="refsect2" lang="en"> 65<h3> 66<a name="xmlLink">Structure </a>xmlLink</h3> 67<pre class="programlisting">struct _xmlLink { 68The content of this structure is not made public by the API. 69} xmlLink; 70</pre> 71<p></p> 72</div> 73<hr> 74<div class="refsect2" lang="en"> 75<h3> 76<a name="xmlLinkPtr">Typedef </a>xmlLinkPtr</h3> 77<pre class="programlisting"><a href="libxml2-list.html#xmlLink">xmlLink</a> * xmlLinkPtr; 78</pre> 79<p></p> 80</div> 81<hr> 82<div class="refsect2" lang="en"> 83<h3> 84<a name="xmlList">Structure </a>xmlList</h3> 85<pre class="programlisting">struct _xmlList { 86The content of this structure is not made public by the API. 87} xmlList; 88</pre> 89<p></p> 90</div> 91<hr> 92<div class="refsect2" lang="en"> 93<h3> 94<a name="xmlListPtr">Typedef </a>xmlListPtr</h3> 95<pre class="programlisting"><a href="libxml2-list.html#xmlList">xmlList</a> * xmlListPtr; 96</pre> 97<p></p> 98</div> 99<hr> 100<div class="refsect2" lang="en"> 101<h3> 102<a name="xmlListDataCompare"></a>Function type xmlListDataCompare</h3> 103<pre class="programlisting">int xmlListDataCompare (const void * data0, <br> const void * data1)<br> 104</pre> 105<p>Callback function used to compare 2 data.</p> 106<div class="variablelist"><table border="0"> 107<col align="left"> 108<tbody> 109<tr> 110<td><span class="term"><i><tt>data0</tt></i>:</span></td> 111<td>the first data</td> 112</tr> 113<tr> 114<td><span class="term"><i><tt>data1</tt></i>:</span></td> 115<td>the second data</td> 116</tr> 117<tr> 118<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 119<td>0 is equality, -1 or 1 otherwise depending on the ordering.</td> 120</tr> 121</tbody> 122</table></div> 123</div> 124<hr> 125<div class="refsect2" lang="en"> 126<h3> 127<a name="xmlListDeallocator"></a>Function type xmlListDeallocator</h3> 128<pre class="programlisting">void xmlListDeallocator (<a href="libxml2-list.html#xmlLinkPtr">xmlLinkPtr</a> lk)<br> 129</pre> 130<p>Callback function used to free data from a list.</p> 131<div class="variablelist"><table border="0"> 132<col align="left"> 133<tbody><tr> 134<td><span class="term"><i><tt>lk</tt></i>:</span></td> 135<td>the data to deallocate</td> 136</tr></tbody> 137</table></div> 138</div> 139<hr> 140<div class="refsect2" lang="en"> 141<h3> 142<a name="xmlListWalker"></a>Function type xmlListWalker</h3> 143<pre class="programlisting">int xmlListWalker (const void * data, <br> void * user)<br> 144</pre> 145<p>Callback function used when walking a list with xmlListWalk().</p> 146<div class="variablelist"><table border="0"> 147<col align="left"> 148<tbody> 149<tr> 150<td><span class="term"><i><tt>data</tt></i>:</span></td> 151<td>the data found in the list</td> 152</tr> 153<tr> 154<td><span class="term"><i><tt>user</tt></i>:</span></td> 155<td>extra user provided data to the walker</td> 156</tr> 157<tr> 158<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 159<td>0 to stop walking the list, 1 otherwise.</td> 160</tr> 161</tbody> 162</table></div> 163</div> 164<hr> 165<div class="refsect2" lang="en"> 166<h3> 167<a name="xmlLinkGetData"></a>xmlLinkGetData ()</h3> 168<pre class="programlisting">void * xmlLinkGetData (<a href="libxml2-list.html#xmlLinkPtr">xmlLinkPtr</a> lk)<br> 169</pre> 170<p>See Returns.</p> 171<div class="variablelist"><table border="0"> 172<col align="left"> 173<tbody> 174<tr> 175<td><span class="term"><i><tt>lk</tt></i>:</span></td> 176<td>a link</td> 177</tr> 178<tr> 179<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 180<td>a pointer to the data referenced from this link</td> 181</tr> 182</tbody> 183</table></div> 184</div> 185<hr> 186<div class="refsect2" lang="en"> 187<h3> 188<a name="xmlListAppend"></a>xmlListAppend ()</h3> 189<pre class="programlisting">int xmlListAppend (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> void * data)<br> 190</pre> 191<p>Insert data in the ordered list at the end for this value</p> 192<div class="variablelist"><table border="0"> 193<col align="left"> 194<tbody> 195<tr> 196<td><span class="term"><i><tt>l</tt></i>:</span></td> 197<td>a list</td> 198</tr> 199<tr> 200<td><span class="term"><i><tt>data</tt></i>:</span></td> 201<td>the data</td> 202</tr> 203<tr> 204<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 205<td>0 in case of success, 1 in case of failure</td> 206</tr> 207</tbody> 208</table></div> 209</div> 210<hr> 211<div class="refsect2" lang="en"> 212<h3> 213<a name="xmlListClear"></a>xmlListClear ()</h3> 214<pre class="programlisting">void xmlListClear (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br> 215</pre> 216<p>Remove the all data in the list</p> 217<div class="variablelist"><table border="0"> 218<col align="left"> 219<tbody><tr> 220<td><span class="term"><i><tt>l</tt></i>:</span></td> 221<td>a list</td> 222</tr></tbody> 223</table></div> 224</div> 225<hr> 226<div class="refsect2" lang="en"> 227<h3> 228<a name="xmlListCopy"></a>xmlListCopy ()</h3> 229<pre class="programlisting">int xmlListCopy (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> cur, <br> <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> old)<br> 230</pre> 231<p>Move all the element from the old list in the new list</p> 232<div class="variablelist"><table border="0"> 233<col align="left"> 234<tbody> 235<tr> 236<td><span class="term"><i><tt>cur</tt></i>:</span></td> 237<td>the new list</td> 238</tr> 239<tr> 240<td><span class="term"><i><tt>old</tt></i>:</span></td> 241<td>the old list</td> 242</tr> 243<tr> 244<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 245<td>0 in case of success 1 in case of error</td> 246</tr> 247</tbody> 248</table></div> 249</div> 250<hr> 251<div class="refsect2" lang="en"> 252<h3> 253<a name="xmlListCreate"></a>xmlListCreate ()</h3> 254<pre class="programlisting"><a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> xmlListCreate (<a href="libxml2-list.html#xmlListDeallocator">xmlListDeallocator</a> deallocator, <br> <a href="libxml2-list.html#xmlListDataCompare">xmlListDataCompare</a> compare)<br> 255</pre> 256<p>Create a new list</p> 257<div class="variablelist"><table border="0"> 258<col align="left"> 259<tbody> 260<tr> 261<td><span class="term"><i><tt>deallocator</tt></i>:</span></td> 262<td>an optional deallocator function</td> 263</tr> 264<tr> 265<td><span class="term"><i><tt>compare</tt></i>:</span></td> 266<td>an optional comparison function</td> 267</tr> 268<tr> 269<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 270<td>the new list or NULL in case of error</td> 271</tr> 272</tbody> 273</table></div> 274</div> 275<hr> 276<div class="refsect2" lang="en"> 277<h3> 278<a name="xmlListDelete"></a>xmlListDelete ()</h3> 279<pre class="programlisting">void xmlListDelete (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br> 280</pre> 281<p>Deletes the list and its associated data</p> 282<div class="variablelist"><table border="0"> 283<col align="left"> 284<tbody><tr> 285<td><span class="term"><i><tt>l</tt></i>:</span></td> 286<td>a list</td> 287</tr></tbody> 288</table></div> 289</div> 290<hr> 291<div class="refsect2" lang="en"> 292<h3> 293<a name="xmlListDup"></a>xmlListDup ()</h3> 294<pre class="programlisting"><a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> xmlListDup (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> old)<br> 295</pre> 296<p>Duplicate the list</p> 297<div class="variablelist"><table border="0"> 298<col align="left"> 299<tbody> 300<tr> 301<td><span class="term"><i><tt>old</tt></i>:</span></td> 302<td>the list</td> 303</tr> 304<tr> 305<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 306<td>a new copy of the list or NULL in case of error</td> 307</tr> 308</tbody> 309</table></div> 310</div> 311<hr> 312<div class="refsect2" lang="en"> 313<h3> 314<a name="xmlListEmpty"></a>xmlListEmpty ()</h3> 315<pre class="programlisting">int xmlListEmpty (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br> 316</pre> 317<p>Is the list empty ?</p> 318<div class="variablelist"><table border="0"> 319<col align="left"> 320<tbody> 321<tr> 322<td><span class="term"><i><tt>l</tt></i>:</span></td> 323<td>a list</td> 324</tr> 325<tr> 326<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 327<td>1 if the list is empty, 0 if not empty and -1 in case of error</td> 328</tr> 329</tbody> 330</table></div> 331</div> 332<hr> 333<div class="refsect2" lang="en"> 334<h3> 335<a name="xmlListEnd"></a>xmlListEnd ()</h3> 336<pre class="programlisting"><a href="libxml2-list.html#xmlLinkPtr">xmlLinkPtr</a> xmlListEnd (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br> 337</pre> 338<p>Get the last element in the list</p> 339<div class="variablelist"><table border="0"> 340<col align="left"> 341<tbody> 342<tr> 343<td><span class="term"><i><tt>l</tt></i>:</span></td> 344<td>a list</td> 345</tr> 346<tr> 347<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 348<td>the last element in the list, or NULL</td> 349</tr> 350</tbody> 351</table></div> 352</div> 353<hr> 354<div class="refsect2" lang="en"> 355<h3> 356<a name="xmlListFront"></a>xmlListFront ()</h3> 357<pre class="programlisting"><a href="libxml2-list.html#xmlLinkPtr">xmlLinkPtr</a> xmlListFront (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br> 358</pre> 359<p>Get the first element in the list</p> 360<div class="variablelist"><table border="0"> 361<col align="left"> 362<tbody> 363<tr> 364<td><span class="term"><i><tt>l</tt></i>:</span></td> 365<td>a list</td> 366</tr> 367<tr> 368<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 369<td>the first element in the list, or NULL</td> 370</tr> 371</tbody> 372</table></div> 373</div> 374<hr> 375<div class="refsect2" lang="en"> 376<h3> 377<a name="xmlListInsert"></a>xmlListInsert ()</h3> 378<pre class="programlisting">int xmlListInsert (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> void * data)<br> 379</pre> 380<p>Insert data in the ordered list at the beginning for this value</p> 381<div class="variablelist"><table border="0"> 382<col align="left"> 383<tbody> 384<tr> 385<td><span class="term"><i><tt>l</tt></i>:</span></td> 386<td>a list</td> 387</tr> 388<tr> 389<td><span class="term"><i><tt>data</tt></i>:</span></td> 390<td>the data</td> 391</tr> 392<tr> 393<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 394<td>0 in case of success, 1 in case of failure</td> 395</tr> 396</tbody> 397</table></div> 398</div> 399<hr> 400<div class="refsect2" lang="en"> 401<h3> 402<a name="xmlListMerge"></a>xmlListMerge ()</h3> 403<pre class="programlisting">void xmlListMerge (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l1, <br> <a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l2)<br> 404</pre> 405<p>include all the elements of the second list in the first one and clear the second list</p> 406<div class="variablelist"><table border="0"> 407<col align="left"> 408<tbody> 409<tr> 410<td><span class="term"><i><tt>l1</tt></i>:</span></td> 411<td>the original list</td> 412</tr> 413<tr> 414<td><span class="term"><i><tt>l2</tt></i>:</span></td> 415<td>the new list</td> 416</tr> 417</tbody> 418</table></div> 419</div> 420<hr> 421<div class="refsect2" lang="en"> 422<h3> 423<a name="xmlListPopBack"></a>xmlListPopBack ()</h3> 424<pre class="programlisting">void xmlListPopBack (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br> 425</pre> 426<p>Removes the last element in the list</p> 427<div class="variablelist"><table border="0"> 428<col align="left"> 429<tbody><tr> 430<td><span class="term"><i><tt>l</tt></i>:</span></td> 431<td>a list</td> 432</tr></tbody> 433</table></div> 434</div> 435<hr> 436<div class="refsect2" lang="en"> 437<h3> 438<a name="xmlListPopFront"></a>xmlListPopFront ()</h3> 439<pre class="programlisting">void xmlListPopFront (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br> 440</pre> 441<p>Removes the first element in the list</p> 442<div class="variablelist"><table border="0"> 443<col align="left"> 444<tbody><tr> 445<td><span class="term"><i><tt>l</tt></i>:</span></td> 446<td>a list</td> 447</tr></tbody> 448</table></div> 449</div> 450<hr> 451<div class="refsect2" lang="en"> 452<h3> 453<a name="xmlListPushBack"></a>xmlListPushBack ()</h3> 454<pre class="programlisting">int xmlListPushBack (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> void * data)<br> 455</pre> 456<p>add the new data at the end of the list</p> 457<div class="variablelist"><table border="0"> 458<col align="left"> 459<tbody> 460<tr> 461<td><span class="term"><i><tt>l</tt></i>:</span></td> 462<td>a list</td> 463</tr> 464<tr> 465<td><span class="term"><i><tt>data</tt></i>:</span></td> 466<td>new data</td> 467</tr> 468<tr> 469<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 470<td>1 if successful, 0 otherwise</td> 471</tr> 472</tbody> 473</table></div> 474</div> 475<hr> 476<div class="refsect2" lang="en"> 477<h3> 478<a name="xmlListPushFront"></a>xmlListPushFront ()</h3> 479<pre class="programlisting">int xmlListPushFront (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> void * data)<br> 480</pre> 481<p>add the new data at the beginning of the list</p> 482<div class="variablelist"><table border="0"> 483<col align="left"> 484<tbody> 485<tr> 486<td><span class="term"><i><tt>l</tt></i>:</span></td> 487<td>a list</td> 488</tr> 489<tr> 490<td><span class="term"><i><tt>data</tt></i>:</span></td> 491<td>new data</td> 492</tr> 493<tr> 494<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 495<td>1 if successful, 0 otherwise</td> 496</tr> 497</tbody> 498</table></div> 499</div> 500<hr> 501<div class="refsect2" lang="en"> 502<h3> 503<a name="xmlListRemoveAll"></a>xmlListRemoveAll ()</h3> 504<pre class="programlisting">int xmlListRemoveAll (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> void * data)<br> 505</pre> 506<p>Remove the all instance associated to data in the list</p> 507<div class="variablelist"><table border="0"> 508<col align="left"> 509<tbody> 510<tr> 511<td><span class="term"><i><tt>l</tt></i>:</span></td> 512<td>a list</td> 513</tr> 514<tr> 515<td><span class="term"><i><tt>data</tt></i>:</span></td> 516<td>list data</td> 517</tr> 518<tr> 519<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 520<td>the number of deallocation, or 0 if not found</td> 521</tr> 522</tbody> 523</table></div> 524</div> 525<hr> 526<div class="refsect2" lang="en"> 527<h3> 528<a name="xmlListRemoveFirst"></a>xmlListRemoveFirst ()</h3> 529<pre class="programlisting">int xmlListRemoveFirst (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> void * data)<br> 530</pre> 531<p>Remove the first instance associated to data in the list</p> 532<div class="variablelist"><table border="0"> 533<col align="left"> 534<tbody> 535<tr> 536<td><span class="term"><i><tt>l</tt></i>:</span></td> 537<td>a list</td> 538</tr> 539<tr> 540<td><span class="term"><i><tt>data</tt></i>:</span></td> 541<td>list data</td> 542</tr> 543<tr> 544<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 545<td>1 if a deallocation occurred, or 0 if not found</td> 546</tr> 547</tbody> 548</table></div> 549</div> 550<hr> 551<div class="refsect2" lang="en"> 552<h3> 553<a name="xmlListRemoveLast"></a>xmlListRemoveLast ()</h3> 554<pre class="programlisting">int xmlListRemoveLast (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> void * data)<br> 555</pre> 556<p>Remove the last instance associated to data in the list</p> 557<div class="variablelist"><table border="0"> 558<col align="left"> 559<tbody> 560<tr> 561<td><span class="term"><i><tt>l</tt></i>:</span></td> 562<td>a list</td> 563</tr> 564<tr> 565<td><span class="term"><i><tt>data</tt></i>:</span></td> 566<td>list data</td> 567</tr> 568<tr> 569<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 570<td>1 if a deallocation occurred, or 0 if not found</td> 571</tr> 572</tbody> 573</table></div> 574</div> 575<hr> 576<div class="refsect2" lang="en"> 577<h3> 578<a name="xmlListReverse"></a>xmlListReverse ()</h3> 579<pre class="programlisting">void xmlListReverse (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br> 580</pre> 581<p>Reverse the order of the elements in the list</p> 582<div class="variablelist"><table border="0"> 583<col align="left"> 584<tbody><tr> 585<td><span class="term"><i><tt>l</tt></i>:</span></td> 586<td>a list</td> 587</tr></tbody> 588</table></div> 589</div> 590<hr> 591<div class="refsect2" lang="en"> 592<h3> 593<a name="xmlListReverseSearch"></a>xmlListReverseSearch ()</h3> 594<pre class="programlisting">void * xmlListReverseSearch (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> void * data)<br> 595</pre> 596<p>Search the list in reverse order for an existing value of @data</p> 597<div class="variablelist"><table border="0"> 598<col align="left"> 599<tbody> 600<tr> 601<td><span class="term"><i><tt>l</tt></i>:</span></td> 602<td>a list</td> 603</tr> 604<tr> 605<td><span class="term"><i><tt>data</tt></i>:</span></td> 606<td>a search value</td> 607</tr> 608<tr> 609<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 610<td>the value associated to @data or NULL in case of error</td> 611</tr> 612</tbody> 613</table></div> 614</div> 615<hr> 616<div class="refsect2" lang="en"> 617<h3> 618<a name="xmlListReverseWalk"></a>xmlListReverseWalk ()</h3> 619<pre class="programlisting">void xmlListReverseWalk (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br> void * user)<br> 620</pre> 621<p>Walk all the element of the list in reverse order and apply the walker function to it</p> 622<div class="variablelist"><table border="0"> 623<col align="left"> 624<tbody> 625<tr> 626<td><span class="term"><i><tt>l</tt></i>:</span></td> 627<td>a list</td> 628</tr> 629<tr> 630<td><span class="term"><i><tt>walker</tt></i>:</span></td> 631<td>a processing function</td> 632</tr> 633<tr> 634<td><span class="term"><i><tt>user</tt></i>:</span></td> 635<td>a user parameter passed to the walker function</td> 636</tr> 637</tbody> 638</table></div> 639</div> 640<hr> 641<div class="refsect2" lang="en"> 642<h3> 643<a name="xmlListSearch"></a>xmlListSearch ()</h3> 644<pre class="programlisting">void * xmlListSearch (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> void * data)<br> 645</pre> 646<p>Search the list for an existing value of @data</p> 647<div class="variablelist"><table border="0"> 648<col align="left"> 649<tbody> 650<tr> 651<td><span class="term"><i><tt>l</tt></i>:</span></td> 652<td>a list</td> 653</tr> 654<tr> 655<td><span class="term"><i><tt>data</tt></i>:</span></td> 656<td>a search value</td> 657</tr> 658<tr> 659<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 660<td>the value associated to @data or NULL in case of error</td> 661</tr> 662</tbody> 663</table></div> 664</div> 665<hr> 666<div class="refsect2" lang="en"> 667<h3> 668<a name="xmlListSize"></a>xmlListSize ()</h3> 669<pre class="programlisting">int xmlListSize (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br> 670</pre> 671<p>Get the number of elements in the list</p> 672<div class="variablelist"><table border="0"> 673<col align="left"> 674<tbody> 675<tr> 676<td><span class="term"><i><tt>l</tt></i>:</span></td> 677<td>a list</td> 678</tr> 679<tr> 680<td><span class="term"><i><tt>Returns</tt></i>:</span></td> 681<td>the number of elements in the list or -1 in case of error</td> 682</tr> 683</tbody> 684</table></div> 685</div> 686<hr> 687<div class="refsect2" lang="en"> 688<h3> 689<a name="xmlListSort"></a>xmlListSort ()</h3> 690<pre class="programlisting">void xmlListSort (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l)<br> 691</pre> 692<p>Sort all the elements in the list</p> 693<div class="variablelist"><table border="0"> 694<col align="left"> 695<tbody><tr> 696<td><span class="term"><i><tt>l</tt></i>:</span></td> 697<td>a list</td> 698</tr></tbody> 699</table></div> 700</div> 701<hr> 702<div class="refsect2" lang="en"> 703<h3> 704<a name="xmlListWalk"></a>xmlListWalk ()</h3> 705<pre class="programlisting">void xmlListWalk (<a href="libxml2-list.html#xmlListPtr">xmlListPtr</a> l, <br> <a href="libxml2-list.html#xmlListWalker">xmlListWalker</a> walker, <br> void * user)<br> 706</pre> 707<p>Walk all the element of the first from first to last and apply the walker function to it</p> 708<div class="variablelist"><table border="0"> 709<col align="left"> 710<tbody> 711<tr> 712<td><span class="term"><i><tt>l</tt></i>:</span></td> 713<td>a list</td> 714</tr> 715<tr> 716<td><span class="term"><i><tt>walker</tt></i>:</span></td> 717<td>a processing function</td> 718</tr> 719<tr> 720<td><span class="term"><i><tt>user</tt></i>:</span></td> 721<td>a user parameter passed to the walker function</td> 722</tr> 723</tbody> 724</table></div> 725</div> 726<hr> 727</div> 728</div> 729</body> 730</html> 731