![]() |
<libroxml
version="3.0.2"
/>
|
XML content access module. More...
#include <string.h>#include <stdlib.h>#include "roxml_mem.h"#include "roxml_file.h"#include "roxml_buff.h"Go to the source code of this file.
Data Structures | |
| struct | roxml_escape_char |
Functions | |
| ROXML_API int | roxml_escape (const char *buf, int decode, char *out) |
| XML encoding/decoding function. | |
| ROXML_STATIC ROXML_INT int | roxml_read (int pos, int size, char *buffer, node_t *node) |
| read xml doc function | |
| ROXML_STATIC ROXML_INT int | roxml_content_size (node_t *n, int *offset) |
| ROXML_STATIC ROXML_INT char * | roxml_prepare_buffer (node_t *n, char *buffer, int contentsize, int size) |
| ROXML_API char * | roxml_get_content (node_t *n, char *buffer, int bufsize, int *size) |
| content getter function | |
| ROXML_STATIC ROXML_INT int | roxml_name_size (node_t *n, int size, int *offset) |
| ROXML_API char * | roxml_get_name (node_t *n, char *buffer, int size) |
| name getter function | |
| ROXML_API int | roxml_get_nodes_nb (node_t *n, int type) |
| number of nodes getter function | |
| ROXML_STATIC ROXML_INT node_t * | roxml_get_nodes_by_name (node_t *n, int type, char *name) |
| ROXML_STATIC ROXML_INT node_t * | roxml_get_nodes_by_nth (node_t *n, int type, int nth) |
| ROXML_API node_t * | roxml_get_nodes (node_t *n, int type, char *name, int nth) |
| nodes getter function | |
| ROXML_API node_t * | roxml_get_ns (node_t *n) |
| namespace getter function | |
| ROXML_API int | roxml_get_pi_nb (node_t *n) |
| process-instruction number getter function | |
| ROXML_API node_t * | roxml_get_pi (node_t *n, int nth) |
| process-instruction getter function | |
| ROXML_API int | roxml_get_cmt_nb (node_t *n) |
| comments number getter function | |
| ROXML_API node_t * | roxml_get_cmt (node_t *n, int nth) |
| comment getter function | |
| ROXML_API int | roxml_get_txt_nb (node_t *n) |
| text node number getter function | |
| ROXML_API node_t * | roxml_get_txt (node_t *n, int nth) |
| text node getter function | |
| ROXML_API int | roxml_get_attr_nb (node_t *n) |
| number of attribute getter function | |
| ROXML_API node_t * | roxml_get_attr (node_t *n, char *name, int nth) |
| attribute getter function | |
| ROXML_API int | roxml_get_chld_nb (node_t *n) |
| chlds number getter function | |
| ROXML_API node_t * | roxml_get_chld (node_t *n, char *name, int nth) |
| chld getter function | |
| ROXML_API int | roxml_get_type (node_t *n) |
| node type function | |
| ROXML_API int | roxml_get_node_position (node_t *n) |
| node get position function | |
Variables | |
| struct roxml_escape_char | specials [5] |
XML content access module.
(C) Copyright 2014 Tristan Lelong trist.nosp@m.an.l.nosp@m.elong.nosp@m.@lib.nosp@m.roxml.nosp@m..net
SPDX-Licence-Identifier: LGPL-2.1+ The author added a static linking exception, see License.txt.
Definition in file roxml_content.c.
|
inline |
Definition at line 88 of file roxml_content.c.
| roxml_escape | ( | const char * | buf, |
| int | decode, | ||
| char * | out | ||
| ) |
XML encoding/decoding function.
this function converts the escape codes into ascii char or special carachers in escape codes.
| buf | the bytes to be converted |
| decode | indicates whether to encde or decode escape caracteres. |
| out | is filled with the encoded/decoded data if not null. |
Definition at line 31 of file roxml_content.c.
attribute getter function
This function get the nth attribute of a node.
| n | is one node of the tree |
| name | is the name of the attribute to get |
| nth | the id of attribute to read |
example: given the following xml file
<xml> <product id="42" class="item"/> </xml>
Definition at line 444 of file roxml_content.c.
|
inline |
number of attribute getter function
This function returns the number of attributes for a given node
| n | is one node of the tree |
Definition at line 439 of file roxml_content.c.
chld getter function
This function returns a given chld of a node etheir by name, or the nth child.
| n | is one node of the tree |
| name | is the name of the child to get |
| nth | is the id of the chld to get |
example: given the following xml file
<xml> <item1/> <item2/> <item3/> </xml>
Definition at line 454 of file roxml_content.c.
|
inline |
chlds number getter function
This function return the number of chlidren for a given node
| n | is one node of the tree |
Definition at line 449 of file roxml_content.c.
comment getter function
This function returns the nth comment of a node
| n | is one node of the tree |
| nth | is the id of the cmt to get |
example: given the following xml file
<xml> <item1/> <!--comment1--> <!--comment2--> <item2/> <item3/> </xml>
Definition at line 424 of file roxml_content.c.
|
inline |
comments number getter function
This function return the number of comments for a given node
| n | is one node of the tree |
Definition at line 419 of file roxml_content.c.
| char * roxml_get_content | ( | node_t * | n, |
| char * | buffer, | ||
| int | bufsize, | ||
| int * | size | ||
| ) |
content getter function
This function returns the content of a node.; if the returned pointer is NULL then the node either has no content or this function is irrelevant for this kind of node. depending on node type it will return:
returned string should be freed using roxml_release when not used anymore
| n | is one node of the tree |
| buffer | is the buffer where result will be written or NULL for internal allocation |
| bufsize | the size if using custom buffer |
| size | the actual size of copied result. returned size should be less that buffer size since roxml_get_content will add the \0. if buffer was not NULL and size == buf_size, then given buffer was too small and node content was truncated |
Definition at line 148 of file roxml_content.c.
| char * roxml_get_name | ( | node_t * | n, |
| char * | buffer, | ||
| int | size | ||
| ) |
name getter function
This function return the name of the node or fill the current buffer with it if not NULL. if name is NULL, the function will allocate a buffer that user should free using roxml_release when no longer needed. depending on node type it will return:
Be carreful as if your buffer is too short for the returned string, it will be truncated
| n | is one node of the tree |
| buffer | a buffer pointer or NULL if has to be auto allocated |
| size | the size of buffer pointed by buffer if not NULL |
Definition at line 225 of file roxml_content.c.
| roxml_get_node_position | ( | node_t * | n | ) |
node get position function
This function tells the index of a node between all its siblings homonyns.
| n | is the node to test |
Definition at line 466 of file roxml_content.c.
| char * roxml_get_nodes | ( | node_t * | n, |
| int | type, | ||
| char * | name, | ||
| int | nth | ||
| ) |
nodes getter function
This function get the nth node matching type contained in a node, or the first node named name. All other roxml_get_* are wrapper to this function. When asking for several node type (let say ROXML_ALL_NODES), all ROXML_ATTR_NODE will be placed first, then, all other nodes will come mixed, depending on xml document order.
| n | is one node of the tree |
| type | is the bitmask of node types we want to consider |
| name | is the name of the child to get. This parameter is only relevant for node with types: ROXML_ELM_NODE, ROXML_ATTR_NODE, ROXML_PI_NODE |
| nth | the id of attribute to read |
Definition at line 394 of file roxml_content.c.
|
inline |
Definition at line 336 of file roxml_content.c.
Definition at line 357 of file roxml_content.c.
| int roxml_get_nodes_nb | ( | node_t * | n, |
| int | type | ||
| ) |
number of nodes getter function
This function returns the number of nodes matching type flag contained in a given node all other roxml_get_*_nb are wrapper to this
| n | is one node of the tree |
| type | is the bitmask of node types we want to consider |
example: given the following xml file
<xml> <!-- comment --> <?value="2"?> <product id="42" class="item"/> <product id="43" class="item"/> </xml>
Definition at line 308 of file roxml_content.c.
namespace getter function
This function returns the namespace of a node
| n | is one node of the tree |
example: given the following xml file
<xml xmlns:test="http://www.test.org"> <test:item1 test:value1="3"/> </xml>
Definition at line 404 of file roxml_content.c.
process-instruction getter function
This function returns the nth process-instruction of a node.
| n | is one node of the tree |
| nth | is the id of the pi to get |
example: given the following xml file
<xml> <item1/> <?test value="2"?> <?test param="3"?> <item2/> <item3/> </xml>
Definition at line 414 of file roxml_content.c.
|
inline |
process-instruction number getter function
This function return the number of process-instruction in a given node
| n | is one node of the tree |
Definition at line 409 of file roxml_content.c.
|
inline |
text node getter function
this function return the text content of a node as a ROXML_TXT_NODE the content of the text node can be read using the roxml_get_content function
| n | the node that contains text |
| nth | the nth text node to retrieve |
example: given this xml file:
<xml> This is <item/> an example <item/> of text nodes </xml>
Definition at line 434 of file roxml_content.c.
|
inline |
text node number getter function
this function return the number of text nodes in a standard node
| n | the node to search into |
Definition at line 429 of file roxml_content.c.
|
inline |
node type function
This function tells if a node is an ROXML_ATTR_NODE, ROXML_TXT_NODE, ROXML_PI_NODE, ROXML_CMT_NODE or ROXML_ELM_NODE. Warning: ROXML_CDATA_NODE are special. They return a type as ROXML_TXT_NODE.
| n | is the node to test |
Definition at line 459 of file roxml_content.c.
|
inline |
Definition at line 200 of file roxml_content.c.
|
inline |
Definition at line 134 of file roxml_content.c.
|
inline |
read xml doc function
this function read inside a xml doc (file or buffer) and fill the given buffer
| pos | the pos in the xml document |
| size | the size of the data to read |
| buffer | the destination buffer |
| node | the node that belong to the tree we want to read to |
Definition at line 74 of file roxml_content.c.
| struct roxml_escape_char specials[5] |
Definition at line 23 of file roxml_content.c.
1.9.8