http://swpat.ffii.org/Action against software patents http://www.gnome.org/Gnome2 Logo http://www.w3.org/StatusW3C Logo http://www.redhat.com/Red Hat Logo http://xmlsoft.org/Made with Libxml2 Logo 
Module hash from libxml2
API Menu ../index.htmlMain Menu ../docs.htmlDeveloper Menu ../examples/index.htmlCode Examples index.htmlAPI Menu libxml-parser.htmlParser API libxml-tree.htmlTree API libxml-xmlreader.htmlReader API ../guidelines.htmlXML Guidelines ../ChangeLog.htmlChangeLog API Indexes ../APIchunk0.htmlAlphabetic ../APIconstructors.htmlConstructors ../APIfunctions.htmlFunctions/Types ../APIfiles.htmlModules ../APIsymbols.htmlSymbols Related links http://mail.gnome.org/archives/xml/Mail archive http://xmlsoft.org/XSLT/XSLT libxslt http://phd.cs.unibo.it/gdome2/DOM gdome2 http://www.aleksey.com/xmlsec/XML-DSig xmlsec ftp://xmlsoft.org/FTP http://www.zlatkovic.com/projects/libxml/Windows binaries http://www.blastwave.org/packages.php/libxml2Solaris binaries http://www.explain.com.au/oss/libxml2xslt.htmlMacOsX binaries http://libxmlplusplus.sourceforge.net/C++ bindings http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4PHP bindings http://sourceforge.net/projects/libxml2-pas/Pascal bindings http://rubyforge.org/projects/xml-tools/Ruby bindings http://tclxml.sourceforge.net/Tcl bindings http://bugzilla.gnome.org/buglist.cgi?product=libxml2Bug Tracker libxml-globals.htmlPrev libxml-globals.htmlglobals index.htmlUp index.htmlAPI documentation ../index.htmlHome ../index.htmlThe XML C parser and toolkit of Gnome libxml-list.htmllist libxml-list.htmlNext This module implements the hash table support used in various places in the library. 
Table of Contents
#define #XML_CAST_FPTRXML_CAST_FPTR Structure #xmlHashTablexmlHashTable struct _xmlHashTable
The content of this structure is not made public by the API.
Typedef libxml-hash.html#xmlHashTablexmlHashTable  * xmlHashTablePtr int	#xmlHashAddEntryxmlHashAddEntry 			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 void * userdata)int	#xmlHashAddEntry2xmlHashAddEntry2 		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 void * userdata)int	#xmlHashAddEntry3xmlHashAddEntry3 		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name3, 					 void * userdata)Function type: #xmlHashCopierxmlHashCopier void *	
#xmlHashCopierxmlHashCopier 			(void * payload, 					 libxml-xmlstring.html#xmlCharxmlChar  * name)
libxml-hash.html#xmlHashTablePtrxmlHashTablePtr 	#xmlHashCopyxmlHashCopy 		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 libxml-hash.html#xmlHashCopierxmlHashCopier  f) libxml-hash.html#xmlHashTablePtrxmlHashTablePtr 	#xmlHashCreatexmlHashCreate 		(int size) libxml-hash.html#xmlHashTablePtrxmlHashTablePtr 	#xmlHashCreateDictxmlHashCreateDict 	(int size, 					 libxml-dict.html#xmlDictPtrxmlDictPtr  dict)Function type: #xmlHashDeallocatorxmlHashDeallocator void	
#xmlHashDeallocatorxmlHashDeallocator 		(void * payload, 					 libxml-xmlstring.html#xmlCharxmlChar  * name)
void	#xmlHashFreexmlHashFree 			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 libxml-hash.html#xmlHashDeallocatorxmlHashDeallocator  f)void *	#xmlHashLookupxmlHashLookup 			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name)void *	#xmlHashLookup2xmlHashLookup2 			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2)void *	#xmlHashLookup3xmlHashLookup3 			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name3)void *	#xmlHashQLookupxmlHashQLookup 			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * prefix, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name)void *	#xmlHashQLookup2xmlHashQLookup2 			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * prefix, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * prefix2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2)void *	#xmlHashQLookup3xmlHashQLookup3 			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * prefix, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * prefix2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * prefix3, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name3)int	#xmlHashRemoveEntryxmlHashRemoveEntry 		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 libxml-hash.html#xmlHashDeallocatorxmlHashDeallocator  f)int	#xmlHashRemoveEntry2xmlHashRemoveEntry2 		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 libxml-hash.html#xmlHashDeallocatorxmlHashDeallocator  f)int	#xmlHashRemoveEntry3xmlHashRemoveEntry3 		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name3, 					 libxml-hash.html#xmlHashDeallocatorxmlHashDeallocator  f)void	#xmlHashScanxmlHashScan 			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 libxml-hash.html#xmlHashScannerxmlHashScanner  f, 					 void * data)void	#xmlHashScan3xmlHashScan3 			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name3, 					 libxml-hash.html#xmlHashScannerxmlHashScanner  f, 					 void * data)void	#xmlHashScanFullxmlHashScanFull 			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 libxml-hash.html#xmlHashScannerFullxmlHashScannerFull  f, 					 void * data)void	#xmlHashScanFull3xmlHashScanFull3 		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name3, 					 libxml-hash.html#xmlHashScannerFullxmlHashScannerFull  f, 					 void * data)Function type: #xmlHashScannerxmlHashScanner void	
#xmlHashScannerxmlHashScanner 			(void * payload, 					 void * data, 					 libxml-xmlstring.html#xmlCharxmlChar  * name)
Function type: #xmlHashScannerFullxmlHashScannerFull void	
#xmlHashScannerFullxmlHashScannerFull 		(void * payload, 					 void * data, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name3)
int	#xmlHashSizexmlHashSize 			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table)int	#xmlHashUpdateEntryxmlHashUpdateEntry 		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 void * userdata, 					 libxml-hash.html#xmlHashDeallocatorxmlHashDeallocator  f)int	#xmlHashUpdateEntry2xmlHashUpdateEntry2 		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 void * userdata, 					 libxml-hash.html#xmlHashDeallocatorxmlHashDeallocator  f)int	#xmlHashUpdateEntry3xmlHashUpdateEntry3 		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name3, 					 void * userdata, 					 libxml-hash.html#xmlHashDeallocatorxmlHashDeallocator  f)Description
Macro: XML_CAST_FPTR
#define XML_CAST_FPTRMacro to do a casting from an object pointer to a function pointer without encountering a warning from gcc #define XML_CAST_FPTR(fptr) (*(void **)(&fptr)) This macro violated ISO C aliasing rules (gcc4 on s390 broke) so it is disabled now
Structure xmlHashTable 
Structure xmlHashTablestruct _xmlHashTable {
The content of this structure is not made public by the API.
}
Function: xmlHashAddEntry
int	xmlHashAddEntry			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 void * userdata)Add the @userdata to the hash @table. This can later be retrieved by using the @name. Duplicate names generate errors.
table: the hash table name: the name of the userdata userdata: a pointer to the userdata Returns: 0 the addition succeeded and -1 in case of error. Function: xmlHashAddEntry2
int	xmlHashAddEntry2		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 void * userdata)Add the @userdata to the hash @table. This can later be retrieved by using the (@name, @name2) tuple. Duplicate tuples generate errors.
table: the hash table name: the name of the userdata name2: a second name of the userdata userdata: a pointer to the userdata Returns: 0 the addition succeeded and -1 in case of error. Function: xmlHashAddEntry3
int	xmlHashAddEntry3		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name3, 					 void * userdata)Add the @userdata to the hash @table. This can later be retrieved by using the tuple (@name, @name2, @name3). Duplicate entries generate errors.
table: the hash table name: the name of the userdata name2: a second name of the userdata name3: a third name of the userdata userdata: a pointer to the userdata Returns: 0 the addition succeeded and -1 in case of error. Function type: xmlHashCopier
Function type: xmlHashCopier
void *	xmlHashCopier			(void * payload, 
					 libxml-xmlstring.html#xmlCharxmlChar  * name)
Callback to copy data from a hash.
payload: the data in the hash name: the name associated Returns: a copy of the data or NULL in case of error. Function: xmlHashCopy
libxml-hash.html#xmlHashTablePtrxmlHashTablePtr 	xmlHashCopy		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 libxml-hash.html#xmlHashCopierxmlHashCopier  f)Scan the hash @table and applied @f to each value.
table: the hash table f: the copier function for items in the hash Returns: the new table or NULL in case of error. Function: xmlHashCreate
libxml-hash.html#xmlHashTablePtrxmlHashTablePtr 	xmlHashCreate		(int size)Create a new xmlHashTablePtr.
size: the size of the hash table Returns: the newly created object, or NULL if an error occured. Function: xmlHashCreateDict
libxml-hash.html#xmlHashTablePtrxmlHashTablePtr 	xmlHashCreateDict	(int size, 					 libxml-dict.html#xmlDictPtrxmlDictPtr  dict)Create a new libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  which will use @dict as the internal dictionary
size: the size of the hash table dict: a dictionary to use for the hash Returns: the newly created object, or NULL if an error occured. Function type: xmlHashDeallocator
Function type: xmlHashDeallocator
void	xmlHashDeallocator		(void * payload, 
					 libxml-xmlstring.html#xmlCharxmlChar  * name)
Callback to free data from a hash.
payload: the data in the hash name: the name associated Function: xmlHashFree
void	xmlHashFree			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 libxml-hash.html#xmlHashDeallocatorxmlHashDeallocator  f)Free the hash @table and its contents. The userdata is deallocated with @f if provided.
table: the hash table f: the deallocator function for items in the hash Function: xmlHashLookup
void *	xmlHashLookup			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name)Find the userdata specified by the @name.
table: the hash table name: the name of the userdata Returns: the pointer to the userdata Function: xmlHashLookup2
void *	xmlHashLookup2			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2)Find the userdata specified by the (@name, @name2) tuple.
table: the hash table name: the name of the userdata name2: a second name of the userdata Returns: the pointer to the userdata Function: xmlHashLookup3
void *	xmlHashLookup3			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name3)Find the userdata specified by the (@name, @name2, @name3) tuple.
table: the hash table name: the name of the userdata name2: a second name of the userdata name3: a third name of the userdata Returns: the a pointer to the userdata Function: xmlHashQLookup
void *	xmlHashQLookup			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * prefix, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name)Find the userdata specified by the QName @prefix:@name/@name.
table: the hash table prefix: the prefix of the userdata name: the name of the userdata Returns: the pointer to the userdata Function: xmlHashQLookup2
void *	xmlHashQLookup2			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * prefix, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * prefix2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2)Find the userdata specified by the QNames tuple
table: the hash table prefix: the prefix of the userdata name: the name of the userdata prefix2: the second prefix of the userdata name2: a second name of the userdata Returns: the pointer to the userdata Function: xmlHashQLookup3
void *	xmlHashQLookup3			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * prefix, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * prefix2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * prefix3, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name3)Find the userdata specified by the (@name, @name2, @name3) tuple.
table: the hash table prefix: the prefix of the userdata name: the name of the userdata prefix2: the second prefix of the userdata name2: a second name of the userdata prefix3: the third prefix of the userdata name3: a third name of the userdata Returns: the a pointer to the userdata Function: xmlHashRemoveEntry
int	xmlHashRemoveEntry		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 libxml-hash.html#xmlHashDeallocatorxmlHashDeallocator  f)Find the userdata specified by the @name and remove it from the hash @table. Existing userdata for this tuple will be removed and freed with @f.
table: the hash table name: the name of the userdata f: the deallocator function for removed item (if any) Returns: 0 if the removal succeeded and -1 in case of error or not found. Function: xmlHashRemoveEntry2
int	xmlHashRemoveEntry2		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 libxml-hash.html#xmlHashDeallocatorxmlHashDeallocator  f)Find the userdata specified by the (@name, @name2) tuple and remove it from the hash @table. Existing userdata for this tuple will be removed and freed with @f.
table: the hash table name: the name of the userdata name2: a second name of the userdata f: the deallocator function for removed item (if any) Returns: 0 if the removal succeeded and -1 in case of error or not found. Function: xmlHashRemoveEntry3
int	xmlHashRemoveEntry3		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name3, 					 libxml-hash.html#xmlHashDeallocatorxmlHashDeallocator  f)Find the userdata specified by the (@name, @name2, @name3) tuple and remove it from the hash @table. Existing userdata for this tuple will be removed and freed with @f.
table: the hash table name: the name of the userdata name2: a second name of the userdata name3: a third name of the userdata f: the deallocator function for removed item (if any) Returns: 0 if the removal succeeded and -1 in case of error or not found. Function: xmlHashScan
void	xmlHashScan			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 libxml-hash.html#xmlHashScannerxmlHashScanner  f, 					 void * data)Scan the hash @table and applied @f to each value.
table: the hash table f: the scanner function for items in the hash data: extra data passed to f Function: xmlHashScan3
void	xmlHashScan3			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name3, 					 libxml-hash.html#xmlHashScannerxmlHashScanner  f, 					 void * data)Scan the hash @table and applied @f to each value matching (@name, @name2, @name3) tuple. If one of the names is null, the comparison is considered to match.
table: the hash table name: the name of the userdata or NULL name2: a second name of the userdata or NULL name3: a third name of the userdata or NULL f: the scanner function for items in the hash data: extra data passed to f Function: xmlHashScanFull
void	xmlHashScanFull			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 libxml-hash.html#xmlHashScannerFullxmlHashScannerFull  f, 					 void * data)Scan the hash @table and applied @f to each value.
table: the hash table f: the scanner function for items in the hash data: extra data passed to f Function: xmlHashScanFull3
void	xmlHashScanFull3		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name3, 					 libxml-hash.html#xmlHashScannerFullxmlHashScannerFull  f, 					 void * data)Scan the hash @table and applied @f to each value matching (@name, @name2, @name3) tuple. If one of the names is null, the comparison is considered to match.
table: the hash table name: the name of the userdata or NULL name2: a second name of the userdata or NULL name3: a third name of the userdata or NULL f: the scanner function for items in the hash data: extra data passed to f Function type: xmlHashScanner
Function type: xmlHashScanner
void	xmlHashScanner			(void * payload, 
					 void * data, 					 libxml-xmlstring.html#xmlCharxmlChar  * name)
Callback when scanning data in a hash with the simple scanner.
payload: the data in the hash data: extra scannner data name: the name associated Function type: xmlHashScannerFull
Function type: xmlHashScannerFull
void	xmlHashScannerFull		(void * payload, 
					 void * data, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name3)
Callback when scanning data in a hash with the full scanner.
payload: the data in the hash data: extra scannner data name: the name associated name2: the second name associated name3: the third name associated Function: xmlHashSize
int	xmlHashSize			( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table)Query the number of elements installed in the hash @table.
table: the hash table Returns: the number of elements in the hash table or -1 in case of error Function: xmlHashUpdateEntry
int	xmlHashUpdateEntry		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 void * userdata, 					 libxml-hash.html#xmlHashDeallocatorxmlHashDeallocator  f)Add the @userdata to the hash @table. This can later be retrieved by using the @name. Existing entry for this @name will be removed and freed with @f if found.
table: the hash table name: the name of the userdata userdata: a pointer to the userdata f: the deallocator function for replaced item (if any) Returns: 0 the addition succeeded and -1 in case of error. Function: xmlHashUpdateEntry2
int	xmlHashUpdateEntry2		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 void * userdata, 					 libxml-hash.html#xmlHashDeallocatorxmlHashDeallocator  f)Add the @userdata to the hash @table. This can later be retrieved by using the (@name, @name2) tuple. Existing entry for this tuple will be removed and freed with @f if found.
table: the hash table name: the name of the userdata name2: a second name of the userdata userdata: a pointer to the userdata f: the deallocator function for replaced item (if any) Returns: 0 the addition succeeded and -1 in case of error. Function: xmlHashUpdateEntry3
int	xmlHashUpdateEntry3		( libxml-hash.html#xmlHashTablePtrxmlHashTablePtr  table, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name2, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name3, 					 void * userdata, 					 libxml-hash.html#xmlHashDeallocatorxmlHashDeallocator  f)Add the @userdata to the hash @table. This can later be retrieved by using the tuple (@name, @name2, @name3). Existing entry for this tuple will be removed and freed with @f if found.
table: the hash table name: the name of the userdata name2: a second name of the userdata name3: a third name of the userdata userdata: a pointer to the userdata f: the deallocator function for replaced item (if any) Returns: 0 the addition succeeded and -1 in case of error. ../bugs.htmlDaniel Veillard 
