The Open FUSION Toolkit 26.6
An open-source framework for fusion and plasma science and engineering
Loading...
Searching...
No Matches
oft_xml_c.c File Reference
#include <string.h>
#include <stdlib.h>
#include <libxml/parser.h>

Functions

void oft_xml_free_doc (void *doc_ptr)
void oft_xml_free_ptr (void *gen_ptr)
int oft_xml_get_attribute (const void *node_ptr, const char *attr_name, char **content, int *content_len)
int oft_xml_get_content (const void *node_ptr, char **content, int *content_len)
int oft_xml_get_element (const void *parent_ptr, const char *name, int index, void **element_ptr)
int oft_xml_get_elements (const void *parent_ptr, const char *name, int *n, void **elements_ptr)
int oft_xml_get_root (const void *doc_ptr, void **root_ptr)
int oft_xml_has_attribute (const void *node_ptr, const char *attr_name)
int oft_xml_parse_file (const char *filepath, void **doc_ptr)

Function Documentation

◆ oft_xml_free_doc()

void oft_xml_free_doc ( void * doc_ptr)

Free an XML document previously parsed with oft_xml_load_file

Parameters
doc_ptrPointer to xmlDoc

◆ oft_xml_free_ptr()

void oft_xml_free_ptr ( void * gen_ptr)

Free a C array/object

Parameters
gen_ptrPointer to be freed

◆ oft_xml_get_attribute()

int oft_xml_get_attribute ( const void * node_ptr,
const char * attr_name,
char ** content,
int * content_len )

Extract the string value of a given attribute on a given xml node

Parameters
node_ptrPointer to xmlNode
attr_nameNull-terminated attribute name
contentOutput character buffer (null-terminated)
content_lenSize of content buffer
Returns
0 on success, nonzero on error.

◆ oft_xml_get_content()

int oft_xml_get_content ( const void * node_ptr,
char ** content,
int * content_len )

Extract the string content from a given xml node.

Parameters
node_ptrPointer to xmlNode
contentOutput character buffer (null-terminated)
content_lenSize of content buffer
Returns
0 on success, nonzero on error.

◆ oft_xml_get_element()

int oft_xml_get_element ( const void * parent_ptr,
const char * name,
int index,
void ** element_ptr )

Retrieve a pointer to the i-th xml node with a given name contained within a specified parent node (1-based index)

Parameters
parent_ptrPointer to parent xmlNode
nameNull-terminated element name to search for
index1-based index among matching children
element_ptrOutput pointer to matching xmlNode
Returns
0 on success, nonzero on error

◆ oft_xml_get_elements()

int oft_xml_get_elements ( const void * parent_ptr,
const char * name,
int * n,
void ** elements_ptr )

Retrieve pointers to all xml nodes with a given name contained within a specified parent node

Parameters
parent_ptrPointer to parent xmlNode (cast to void*)
nameNull-terminated element name to search for
nOutput count of matching children
elements_ptrOutput pointer to array of pointers to matching xmlNodes
Returns
0 on success, nonzero on error

◆ oft_xml_get_root()

int oft_xml_get_root ( const void * doc_ptr,
void ** root_ptr )

Retrieve a pointer to the root element of an XML document

Parameters
doc_ptrPointer to xmlDoc
root_ptrOutput pointer to root xmlNode
Returns
0 on success, nonzero on error

◆ oft_xml_has_attribute()

int oft_xml_has_attribute ( const void * node_ptr,
const char * attr_name )

Test if a given xml node has a specified attribute

Parameters
node_ptrPointer to xmlNode
attr_nameNull-terminated attribute name
Returns
0 if attribute exists, nonzero otherwise

◆ oft_xml_parse_file()

int oft_xml_parse_file ( const char * filepath,
void ** doc_ptr )

Parse an XML file from a given file path

Parameters
filepathNull-terminated path to XML file
doc_ptrOutput pointer to xmlDoc
Returns
0 on success, nonzero on error