| Evolution API Reference: libedataserver, utility library |
|---|
EXMLHashEXMLHash — Functions for manipulating xml as a hash table. |
#include <libedataserver/e-xml-hash-utils.h> enum EXmlHashType; enum EXmlHashStatus; void (*EXmlHashFunc) (const char *key, const char *value, gpointer user_data); 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); 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_write (EXmlHash *hash); void e_xmlhash_destroy (EXmlHash *hash);
typedef enum {
E_XML_HASH_TYPE_OBJECT_UID,
E_XML_HASH_TYPE_PROPERTY
} EXmlHashType;
| E_XML_HASH_TYPE_OBJECT_UID | Use the object UID as the hash key. |
| E_XML_HASH_TYPE_PROPERTY | Use the property name as the hash key. |
typedef enum {
E_XMLHASH_STATUS_SAME,
E_XMLHASH_STATUS_DIFFERENT,
E_XMLHASH_STATUS_NOT_FOUND
} EXmlHashStatus;
| E_XMLHASH_STATUS_SAME | The compared values are the same. |
| E_XMLHASH_STATUS_DIFFERENT | The compared values are different. |
| E_XMLHASH_STATUS_NOT_FOUND | The key to compare against was not found. |
void (*EXmlHashFunc) (const char *key,
const char *value,
gpointer user_data);
| key : | |
| value : | |
| user_data : |
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. |
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.
| filename : | The name of an XML file. |
| Returns : | The new EXmlHash structure, or NULL if unable to parse filename. |
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_data are equal,E_XMLHASH_STATUS_DIFFERENT if they are different, or E_XMLHASH_STATUS_NOT_FOUND if there is no entry in hash with its key equal to key. |
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_write (EXmlHash *hash);
Writes the XML represented by hash to the file originally passed to e_xmlhash_new().
| hash : | The EXmlHash to write. |
| << EUrl | MD5 Utility Functions >> |