|  |  |  | Evolution API Reference: libedataserver, utility library |  | 
|---|---|---|---|---|
enum EXmlHashType; GHashTable* e_xml_to_hash (xmlDoc *doc, EXmlHashType type); xmlDoc* e_xml_from_hash (GHashTable *hash, EXmlHashType type, const char *root_node); void e_xml_destroy_hash (GHashTable *hash); enum EXmlHashStatus; void (*EXmlHashFunc) (const char *key, const char *value, gpointer user_data); gboolean (*EXmlHashRemoveFunc) (const char *key, const char *value, gpointer user_data); typedef EXmlHash; EXmlHash* e_xmlhash_new (const char *filename); void e_xmlhash_add (EXmlHash *hash, const char *key, const char *data); void e_xmlhash_remove (EXmlHash *hash, const char *key); EXmlHashStatus e_xmlhash_compare (EXmlHash *hash, const char *key, const char *compare_data); void e_xmlhash_foreach_key (EXmlHash *hash, EXmlHashFunc func, gpointer user_data); void e_xmlhash_foreach_key_remove (EXmlHash *hash, EXmlHashRemoveFunc func, gpointer user_data); void e_xmlhash_write (EXmlHash *hash); void e_xmlhash_destroy (EXmlHash *hash);
typedef enum {
	E_XML_HASH_TYPE_OBJECT_UID,
	E_XML_HASH_TYPE_PROPERTY
} EXmlHashType;
GHashTable* e_xml_to_hash (xmlDoc *doc, EXmlHashType type);
Creates a GHashTable representation of the xmlDoc doc.
If type is * E_XML_HASH_TYPE_PROPERTY, all XML nodes will be
indexed in the GHashTable by name. If type is
E_XML_HASH_TYPE_OBJECT_UID, then XML objects will be indexed in
the hash by their UID (other nodes will still be indexed by name).
| doc: | The xmlDoc to store in a hash table. | 
| type: | The value type to use as a key in the hash table. | 
| Returns : | The newly-created GHashTable representation of doc. | 
xmlDoc* e_xml_from_hash (GHashTable *hash, EXmlHashType type, const char *root_node);
Uses the key/value pair representation of an XML structure in hash
to build an equivalent xmlDoc. This is the reverse of
e_xml_to_hash().
| hash: | The GHashTable to extract the XML from. | 
| type: | The EXmlHashType used to store the XML. | 
| root_node: | |
| Returns : | The xmlDoc created from the data in hash. | 
void e_xml_destroy_hash (GHashTable *hash);
Frees the memory used by hash and its contents.
| hash: | The GHashTable to destroy. | 
typedef enum {
	E_XMLHASH_STATUS_SAME,
	E_XMLHASH_STATUS_DIFFERENT,
	E_XMLHASH_STATUS_NOT_FOUND
} EXmlHashStatus;
void                (*EXmlHashFunc)                     (const char *key,
                                                         const char *value,
                                                         gpointer user_data);
| key: | |
| value: | |
| user_data: | 
gboolean (*EXmlHashRemoveFunc) (const char *key, const char *value, gpointer user_data);
| key: | |
| value: | |
| user_data: | |
| Returns : | 
EXmlHash* e_xmlhash_new (const char *filename);
Creates a new EXmlHash from the file filename. If filename does
not already exist, an empty EXmlHash will be created.
void e_xmlhash_add (EXmlHash *hash, const char *key, const char *data);
Adds a new key/value pair to the EXmlHash hash.
| hash: | The EXmlHash to add an entry to. | 
| key: | The key to use for the entry. | 
| data: | The value of the new entry. | 
void e_xmlhash_remove (EXmlHash *hash, const char *key);
Remove the entry in hash with key equal to key, if it exists.
| hash: | The EXmlHash to remove an entry from. | 
| key: | The key of the entry to remove. | 
EXmlHashStatus e_xmlhash_compare (EXmlHash *hash, const char *key, const char *compare_data);
Compares the value with key equal to key in hash against
compare_data.
| hash: | The EXmlHash to compare against. | 
| key: | The key of the hash entry to compare with. | 
| compare_data: | The data to compare against the hash entry. | 
| Returns : | E_XMLHASH_STATUS_SAME if the value and compare_dataare
         equal,E_XMLHASH_STATUS_DIFFERENT if they are different, or
         E_XMLHASH_STATUS_NOT_FOUND if there is no entry inhashwith 
         its key equal tokey. | 
void e_xmlhash_foreach_key (EXmlHash *hash, EXmlHashFunc func, gpointer user_data);
Executes func against each key/value pair in hash.
| hash: | An EXmlHash. | 
| func: | The EXmlHashFunc to execute on the data in hash. | 
| user_data: | The data to pass to func. | 
void e_xmlhash_foreach_key_remove (EXmlHash *hash, EXmlHashRemoveFunc func, gpointer user_data);
| hash: | |
| func: | |
| user_data: | 
void e_xmlhash_write (EXmlHash *hash);
Writes the XML represented by hash to the file originally passed
to e_xmlhash_new().
| hash: | The EXmlHash to write. |