![]() |
![]() |
![]() |
AppStream-glib Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
#include <appstream-glib.h> enum AsNodeToXmlFlags; enum AsNodeFromXmlFlags; enum AsNodeInsertFlags; enum AsNodeError; #define AS_NODE_ERROR GNode * as_node_new (void
); GQuark as_node_error_quark (void
); void as_node_unref (GNode *node
); const gchar * as_node_get_name (const GNode *node
); const gchar * as_node_get_data (const GNode *node
); const gchar * as_node_get_comment (const GNode *node
); AsTag as_node_get_tag (const GNode *node
); const gchar * as_node_get_attribute (const GNode *node
,const gchar *key
); gint as_node_get_attribute_as_int (const GNode *node
,const gchar *key
); GHashTable * as_node_get_localized (const GNode *node
,const gchar *key
); const gchar * as_node_get_localized_best (const GNode *node
,const gchar *key
); GHashTable * as_node_get_localized_unwrap (const GNode *node
,GError **error
); void as_node_set_name (GNode *node
,const gchar *name
); void as_node_set_data (GNode *node
,const gchar *cdata
,gssize cdata_len
,AsNodeInsertFlags insert_flags
); void as_node_set_comment (GNode *node
,const gchar *comment
,gssize comment_len
); void as_node_add_attribute (GNode *node
,const gchar *key
,const gchar *value
,gssize value_len
); void as_node_add_attribute_as_int (GNode *node
,const gchar *key
,gint value
); void as_node_remove_attribute (GNode *node
,const gchar *key
); GString * as_node_to_xml (const GNode *node
,AsNodeToXmlFlags flags
); GNode * as_node_from_xml (const gchar *data
,gssize data_len
,AsNodeFromXmlFlags flags
,GError **error
); GNode * as_node_from_file (GFile *file
,AsNodeFromXmlFlags flags
,GCancellable *cancellable
,GError **error
); gboolean as_node_to_file (const GNode *root
,GFile *file
,AsNodeToXmlFlags flags
,GCancellable *cancellable
,GError **error
); GNode * as_node_find (GNode *root
,const gchar *path
); GNode * as_node_find_with_attribute (GNode *root
,const gchar *path
,const gchar *attr_key
,const gchar *attr_value
); GNode * as_node_insert (GNode *parent
,const gchar *name
,const gchar *cdata
,AsNodeInsertFlags insert_flags
,...
); void as_node_insert_localized (GNode *parent
,const gchar *name
,GHashTable *localized
,AsNodeInsertFlags insert_flags
); void as_node_insert_hash (GNode *parent
,const gchar *name
,const gchar *attr_key
,GHashTable *hash
,AsNodeInsertFlags insert_flags
);
These helper functions allow parsing to and from AsApp's and the AppStream XML representation. This parser is UTF-8 safe, but not very fast, and parsers like expat should be used if full XML specification adherence is required.
See also: AsApp
typedef enum { AS_NODE_TO_XML_FLAG_NONE = 0, /* Since: 0.1.0 */ AS_NODE_TO_XML_FLAG_ADD_HEADER = 1, /* Since: 0.1.0 */ AS_NODE_TO_XML_FLAG_FORMAT_MULTILINE = 2, /* Since: 0.1.0 */ AS_NODE_TO_XML_FLAG_FORMAT_INDENT = 4, /* Since: 0.1.0 */ AS_NODE_TO_XML_FLAG_INCLUDE_SIBLINGS = 8, /* Since: 0.1.4 */ AS_NODE_TO_XML_FLAG_SORT_CHILDREN = 16, /* Since: 0.2.1 */ } AsNodeToXmlFlags;
The flags for converting to XML.
No extra flags to use | |
Add an XML header to the data | |
Split up children with a newline | |
Indent the XML by child depth | |
Include the siblings when converting | |
Sort the tags by alphabetical order |
typedef enum { AS_NODE_FROM_XML_FLAG_NONE = 0, /* Since: 0.1.0 */ AS_NODE_FROM_XML_FLAG_LITERAL_TEXT = 1, /* Since: 0.1.3 */ AS_NODE_FROM_XML_FLAG_KEEP_COMMENTS = 2, /* Since: 0.1.6 */ } AsNodeFromXmlFlags;
The flags for converting from XML.
typedef enum { AS_NODE_INSERT_FLAG_NONE = 0, /* Since: 0.1.0 */ AS_NODE_INSERT_FLAG_PRE_ESCAPED = 1, /* Since: 0.1.0 */ AS_NODE_INSERT_FLAG_SWAPPED = 2, /* Since: 0.1.0 */ AS_NODE_INSERT_FLAG_NO_MARKUP = 4, /* Since: 0.1.1 */ AS_NODE_INSERT_FLAG_DEDUPE_LANG = 8, /* Since: 0.1.4 */ AS_NODE_INSERT_FLAG_MARK_TRANSLATABLE = 16, /* Since: 0.2.1 */ AS_NODE_INSERT_FLAG_BASE64_ENCODED = 32, /* Since: 0.3.1 */ } AsNodeInsertFlags;
The flags to use when inserting a node.
No extra flags to use | |
The data is already XML escaped | |
The name and key should be swapped | |
Preformat the 'description' markup | |
No xml:lang keys where text matches 'C' | |
Mark the tag name as translatable | |
The data is Base64 enoded |
typedef enum { AS_NODE_ERROR_FAILED, AS_NODE_ERROR_INVALID_MARKUP, /* Since: 0.2.4 */ AS_NODE_ERROR_NO_SUPPORT, /* Since: 0.3.0 */ } AsNodeError;
The error type.
GNode * as_node_new (void
);
Creates a new empty tree whicah can have nodes appended to it.
Returns : |
a new empty tree. [transfer full] |
Since 0.1.0
void as_node_unref (GNode *node
);
Deallocates all notes in the tree.
|
a GNode. |
Since 0.1.0
const gchar * as_node_get_name (const GNode *node
);
Gets the node name, e.g. "body"
|
a GNode |
Returns : |
string value |
Since 0.1.0
const gchar * as_node_get_data (const GNode *node
);
Gets the node data, e.g. "paragraph text"
|
a GNode |
Returns : |
string value |
Since 0.1.0
const gchar * as_node_get_comment (const GNode *node
);
Gets the node data, e.g. "Copyright 2014 Richard Hughes"
|
a GNode |
Returns : |
string value, or NULL
|
Since 0.1.6
AsTag as_node_get_tag (const GNode *node
);
Gets the node tag enum.
|
a GNode |
Returns : |
AsTag, e.g. AS_TAG_PKGNAME
|
Since 0.1.2
const gchar * as_node_get_attribute (const GNode *node
,const gchar *key
);
Gets a node attribute, e.g. "false"
|
a GNode |
|
the attribute key |
Returns : |
string value |
Since 0.1.0
gint as_node_get_attribute_as_int (const GNode *node
,const gchar *key
);
Gets a node attribute, e.g. 34
|
a GNode |
|
the attribute key |
Returns : |
integer value, or G_MAXINT for error |
Since 0.1.0
GHashTable * as_node_get_localized (const GNode *node
,const gchar *key
);
Extracts localized values from the DOM tree
|
a GNode |
|
the key to use, e.g. "copyright" |
Returns : |
A hash table with the locale (e.g. en_GB) as the key. [transfer full] |
Since 0.1.0
const gchar * as_node_get_localized_best (const GNode *node
,const gchar *key
);
Gets the 'best' locale version of a specific data value.
|
a GNode. |
|
the tag name. |
Returns : |
the string value, or NULL if there was no data |
Since 0.1.0
GHashTable * as_node_get_localized_unwrap (const GNode *node
,GError **error
);
Denormalize AppData data like this:
1 2 3 4 5 6 7 8 |
<span style="color: red"><description> <span style="color: red"><p>Hi</p></span> <span style="color: red"><p>Czesc</p></span> <span style="color: red"><ul> <span style="color: red"><li>First</li></span> <span style="color: red"><li>Pierwszy</li></span> </ul></span> </description></span> |
into a hash that contains:
1 2 |
"C" -> "<span style="color: red"><p>Hi</p></span><span style="color: red"><ul><span style="color: red"><li>First</li></span></ul></span>" "pl" -> "<span style="color: red"><p>Czesc</p></span><span style="color: red"><ul><span style="color: red"><li>Pierwszy</li></span></ul></span>" |
|
a GNode. |
|
A GError or NULL . |
Returns : |
a hash table of data. [transfer full] |
Since 0.1.0
void as_node_set_name (GNode *node
,const gchar *name
);
Sets the node name, e.g. "body"
|
a GNode |
|
the new name |
Since 0.1.4
void as_node_set_data (GNode *node
,const gchar *cdata
,gssize cdata_len
,AsNodeInsertFlags insert_flags
);
Sets new data on a node.
|
a GNode |
|
new data |
|
length of data , or -1 if NULL terminated |
|
any AsNodeInsertFlags . |
Since 0.1.1
void as_node_set_comment (GNode *node
,const gchar *comment
,gssize comment_len
);
Sets new comment for the node.
|
a GNode |
|
new comment |
|
length of data , or -1 if NULL terminated |
Since 0.1.6
void as_node_add_attribute (GNode *node
,const gchar *key
,const gchar *value
,gssize value_len
);
Adds a new attribute to a node.
|
a GNode |
|
the attribute key |
|
new data |
|
length of data , or -1 if NULL terminated |
Since 0.1.1
void as_node_add_attribute_as_int (GNode *node
,const gchar *key
,gint value
);
Adds a new attribute to a node.
|
a GNode |
|
the attribute key |
|
new data |
Since 0.3.1
void as_node_remove_attribute (GNode *node
,const gchar *key
);
Removes a node attribute, e.g. "type"
|
a GNode |
|
the attribute key |
Since 0.2.0
GString * as_node_to_xml (const GNode *node
,AsNodeToXmlFlags flags
);
Converts a node and it's children to XML.
|
a GNode. |
|
the AsNodeToXmlFlags, e.g. AS_NODE_INSERT_FLAG_PRE_ESCAPED . |
Returns : |
a GString. [transfer full] |
Since 0.1.0
GNode * as_node_from_xml (const gchar *data
,gssize data_len
,AsNodeFromXmlFlags flags
,GError **error
);
Parses XML data into a DOM tree.
|
XML data |
|
Length of data , or -1 if NULL terminated |
|
AsNodeFromXmlFlags, e.g. AS_NODE_FROM_XML_FLAG_NONE
|
|
A GError or NULL
|
Returns : |
A populated GNode tree. [transfer none] |
Since 0.1.0
GNode * as_node_from_file (GFile *file
,AsNodeFromXmlFlags flags
,GCancellable *cancellable
,GError **error
);
Parses an XML file into a DOM tree.
|
file |
|
AsNodeFromXmlFlags, e.g. AS_NODE_FROM_XML_FLAG_NONE
|
|
A GCancellable, or NULL
|
|
A GError or NULL
|
Returns : |
A populated GNode tree. [transfer none] |
Since 0.1.0
gboolean as_node_to_file (const GNode *root
,GFile *file
,AsNodeToXmlFlags flags
,GCancellable *cancellable
,GError **error
);
Exports a DOM tree to an XML file.
|
A populated GNode tree |
|
a GFile |
|
AsNodeToXmlFlags, e.g. AS_NODE_TO_XML_FLAG_NONE
|
|
A GCancellable, or NULL
|
|
A GError or NULL
|
Returns : |
TRUE for success |
Since 0.2.0
GNode * as_node_find (GNode *root
,const gchar *path
);
Gets a node from the DOM tree.
|
a root node, or NULL
|
|
a path in the DOM, e.g. "html/body" |
Returns : |
A GNode, or NULL if not found |
Since 0.1.0
GNode * as_node_find_with_attribute (GNode *root
,const gchar *path
,const gchar *attr_key
,const gchar *attr_value
);
Gets a node from the DOM tree with a specified attribute.
|
a root node, or NULL
|
|
a path in the DOM, e.g. "html/body" |
|
the attribute key |
|
the attribute value |
Returns : |
A GNode, or NULL if not found |
Since 0.1.0
GNode * as_node_insert (GNode *parent
,const gchar *name
,const gchar *cdata
,AsNodeInsertFlags insert_flags
,...
);
Inserts a node into the DOM.
|
a parent GNode. |
|
the tag name, e.g. "id". |
|
the tag data, or NULL , e.g. "org.gnome.Software.desktop". |
|
any AsNodeInsertFlags . |
|
any attributes to add to the node, terminated by NULL
|
Returns : |
A populated GNode. [transfer none] |
Since 0.1.0
void as_node_insert_localized (GNode *parent
,const gchar *name
,GHashTable *localized
,AsNodeInsertFlags insert_flags
);
Inserts a localized key into the DOM.
|
a parent GNode. |
|
the tag name, e.g. "id". |
|
the hash table of data, with the locale as the key. |
|
any AsNodeInsertFlags . |
Since 0.1.0
void as_node_insert_hash (GNode *parent
,const gchar *name
,const gchar *attr_key
,GHashTable *hash
,AsNodeInsertFlags insert_flags
);
Inserts a hash table of data into the DOM.
|
a parent GNode. |
|
the tag name, e.g. "id". |
|
the key to use as the attribute in the XML, e.g. "key". |
|
the hash table with the key as the key to use in the XML. |
|
any AsNodeInsertFlags . |
Since 0.1.0