e2k-xml-utils

e2k-xml-utils — XML utility functions

Synopsis

xmlDoc *            e2k_parse_xml                       (const gchar *buf,
                                                         gint len);
xmlDoc *            e2k_parse_html                      (const gchar *buf,
                                                         gint len);
#define             E2K_IS_NODE                         (node,
                                                         nspace,
                                                         nname)

#define             E2K_XML_HEADER
void                e2k_g_string_append_xml_escaped     (GString *string,
                                                         const gchar *value);

xmlNode *           e2k_xml_find                        (xmlNode *node,
                                                         const gchar *name);
xmlNode *           e2k_xml_find_in                     (xmlNode *node,
                                                         xmlNode *top,
                                                         const gchar *name);

Description

Details

e2k_parse_xml ()

xmlDoc *            e2k_parse_xml                       (const gchar *buf,
                                                         gint len);

Parses the XML document in buf.

buf :

the data to parse

len :

the length of the buffer, or -1 if it is '\0'-terminated

Returns :

a pointer to an xmlDoc

e2k_parse_html ()

xmlDoc *            e2k_parse_html                      (const gchar *buf,
                                                         gint len);

Parses the HTML document in buf.

buf :

the data to parse

len :

the length of the buffer, or -1 if it is '\0'-terminated

Returns :

a pointer to an xmlDoc

E2K_IS_NODE()

#define             E2K_IS_NODE(node, nspace, nname)

node :

nspace :

nname :


E2K_XML_HEADER

#define E2K_XML_HEADER "<?xml version=\"1.0\" encoding=\"utf-8\" ?>"


e2k_g_string_append_xml_escaped ()

void                e2k_g_string_append_xml_escaped     (GString *string,
                                                         const gchar *value);

Appends value to string, escaping any characters that can't appear unencoded in XML text (eg, "<").

string :

a GString containing XML data

value :

data to append to string

e2k_xml_find ()

xmlNode *           e2k_xml_find                        (xmlNode *node,
                                                         const gchar *name);

Starts or continues a pre-order depth-first search of an xml document for an element named name. node is used as the starting point of the search, but is not examined itself.

To search the complete document, pass the root node of the document as node on the first call, and then on each successive call, pass the previous match as node.

node :

a node of an xml document

name :

the name of the element to find

Returns :

the first matching element after node, or NULL when there are no more matches.

e2k_xml_find_in ()

xmlNode *           e2k_xml_find_in                     (xmlNode *node,
                                                         xmlNode *top,
                                                         const gchar *name);

Starts or continues a pre-order depth-first search of a subset of an xml document for an element named name. node is used as the starting point of the search, but is not examined itself. top is the upper-most node that will be examined.

To search the complete tree under a given node, pass that node as both node and top on the first call, and then on each successive call, pass the previous match as node (with the original node still as top).

node :

a node of an xml document

top :

top of the search space

name :

the name of the element to find

Returns :

the first matching element after node, or NULL when there are no more matches.