Group PJ_TINY_XML¶
-
group
PJ_TINY_XML
Functions
-
pj_xml_node *
pj_xml_parse
(pj_pool_t *pool, char *msg, pj_size_t len)¶ Parse XML message into XML document with a single root node. The parser is capable of parsing XML processing instruction construct (“<?”) and XML comments (“<!–”), however such constructs will be ignored and will not be included in the resulted XML node tree.
- Parameters
pool – Pool to allocate memory from.
msg – The XML message to parse.
len – The length of the message.
- Returns
XML root node, or NULL if the XML document can not be parsed.
-
int
pj_xml_print
(const pj_xml_node *node, char *buf, pj_size_t len, pj_bool_t prolog)¶ Print XML into XML message. Note that the function WILL NOT NULL terminate the output.
- Parameters
node – The XML node to print.
buf – Buffer to hold the output message.
len – The length of the buffer.
prolog – If set to nonzero, will print XML prolog (“<?xml..”)
- Returns
The size of the printed message, or -1 if there is not sufficient space in the buffer to print the message.
-
pj_xml_node *
pj_xml_clone
(pj_pool_t *pool, const pj_xml_node *rhs)¶ Clone XML node and all subnodes.
- Parameters
pool – Pool to allocate memory for new nodes.
rhs – The node to clone.
- Returns
Cloned XML node, or NULL on fail.
-
pj_xml_node *
pj_xml_node_new
(pj_pool_t *pool, const pj_str_t *name)¶ Create an empty node.
- Parameters
pool – Pool.
name – Node name.
- Returns
The new node.
-
pj_xml_attr *
pj_xml_attr_new
(pj_pool_t *pool, const pj_str_t *name, const pj_str_t *value)¶ Create new XML attribute.
- Parameters
pool – Pool.
name – Attribute name.
value – Attribute value.
- Returns
The new XML attribute.
-
void
pj_xml_add_node
(pj_xml_node *parent, pj_xml_node *node)¶ Add node to another node.
- Parameters
parent – Parent node.
node – Node to be added to parent.
-
void
pj_xml_add_attr
(pj_xml_node *node, pj_xml_attr *attr)¶ Add attribute to a node.
- Parameters
node – Node.
attr – Attribute to add to node.
-
pj_xml_node *
pj_xml_find_node
(const pj_xml_node *parent, const pj_str_t *name)¶ Find first direct child node with the specified name.
- Parameters
parent – Parent node.
name – Node name to find.
- Returns
XML node found or NULL.
-
pj_xml_node *
pj_xml_find_next_node
(const pj_xml_node *parent, const pj_xml_node *node, const pj_str_t *name)¶ Find next direct child node with the specified name.
- Parameters
parent – Parent node.
node – node->next is the starting point.
name – Node name to find.
- Returns
XML node found or NULL.
-
pj_xml_node *
pj_xml_find_node_rec
(const pj_xml_node *parent, const pj_str_t *name)¶ Recursively find the first node with the specified name in the child nodes and their children.
- Parameters
parent – Parent node.
name – Node name to find.
- Returns
XML node found or NULL.
-
pj_xml_attr *
pj_xml_find_attr
(const pj_xml_node *node, const pj_str_t *name, const pj_str_t *value)¶ Find first attribute within a node with the specified name and optional value.
- Parameters
node – XML Node.
name – Attribute name to find.
value – Optional value to match.
- Returns
XML attribute found, or NULL.
-
pj_xml_node *
pj_xml_find
(const pj_xml_node *parent, const pj_str_t *name, const void *data, pj_bool_t (*match)(const pj_xml_node*, const void*))¶ Find a direct child node with the specified name and match the function.
- Parameters
parent – Parent node.
name – Optional name. If this is NULL, the name will not be matched.
data – Data to be passed to matching function.
match – Optional matching function.
- Returns
The first matched node, or NULL.
-
pj_xml_node *
pj_xml_find_rec
(const pj_xml_node *parent, const pj_str_t *name, const void *data, pj_bool_t (*match)(const pj_xml_node*, const void*))¶ Recursively find a child node with the specified name and match the function.
- Parameters
parent – Parent node.
name – Optional name. If this is NULL, the name will not be matched.
data – Data to be passed to matching function.
match – Optional matching function.
- Returns
The first matched node, or NULL.
-
struct
pj_xml_attr
¶ - #include <xml.h>
This structure declares XML attribute.
Typedef for XML attribute.
-
struct
pj_xml_node_head
¶ - #include <xml.h>
This structure describes XML node head inside XML node structure.
-
struct
pj_xml_node
¶ - #include <xml.h>
This structure describes XML node.
Typedef for XML nodes.
-
pj_xml_node *