RestXmlParser

RestXmlParser

Types and Values

Object Hierarchy

    GBoxed
    ╰── RestXmlNode
    GObject
    ╰── RestXmlParser

Description

Functions

rest_xml_parser_new ()

RestXmlParser *
rest_xml_parser_new (void);

Create a new RestXmlParser, for parsing XML documents.

Returns

a new RestXmlParser.


rest_xml_parser_parse_from_data ()

RestXmlNode *
rest_xml_parser_parse_from_data (RestXmlParser *parser,
                                 const gchar *data,
                                 goffset len);

Parse the XML in data , and return a new RestXmlNode. If data is invalid XML, NULL is returned.

Parameters

parser

a RestXmlParser

 

data

the XML content to parse

 

len

the length of data , or -1 if data is a nul-terminated string

 

Returns

a new RestXmlNode, or NULL if the XML was invalid.


rest_xml_node_ref ()

RestXmlNode *
rest_xml_node_ref (RestXmlNode *node);

Increases the reference count of node .

[skip]

Parameters

node

a RestXmlNode

 

Returns

the same node .


rest_xml_node_unref ()

void
rest_xml_node_unref (RestXmlNode *node);

Decreases the reference count of node . When its reference count drops to 0, the node is finalized (i.e. its memory is freed).

[skip]

Parameters

node

a RestXmlNode

 

rest_xml_node_get_attr ()

const gchar *
rest_xml_node_get_attr (RestXmlNode *node,
                        const gchar *attr_name);

Get the value of the attribute named attr_name , or NULL if it doesn't exist.

Parameters

node

a RestXmlNode

 

attr_name

the name of an attribute

 

Returns

the attribute value. This string is owned by RestXmlNode and should not be freed.


rest_xml_node_find ()

RestXmlNode *
rest_xml_node_find (RestXmlNode *start,
                    const gchar *tag);

Searches for the first child node of start named tag .

Parameters

start

a RestXmlNode

 

tag

the name of a node

 

Returns

the first child node, or NULL if it doesn't exist.

Types and Values

RestXmlParser

typedef struct _RestXmlParser RestXmlParser;

struct RestXmlNode

struct RestXmlNode {
  gchar *name;
  gchar *content;
  GHashTable *children;
  GHashTable *attrs;
  RestXmlNode *next;
};

Members

gchar *name;

the name of the element

 

gchar *content;

the textual content of the element

 

GHashTable *children;

a GHashTable of string name to RestXmlNode for the children of the element.

 

GHashTable *attrs;

a GHashTable of string name to string values for the attributes of the element.

 

RestXmlNode *next;

the sibling RestXmlNode with the same name