mUPnP for C
xml.h File Reference
#include <mupnp/typedef.h>
#include <mupnp/util/string.h>
#include <mupnp/util/list.h>

Data Structures

struct  _mUpnpXmlAttribute
 
struct  _mUpnpXmlNode
 
struct  _mUpnpXmlParser
 

Macros

#define MUPNP_XML_INDENT_STRING   " "
 
#define MUPNP_XML_VERSION_HEADER   "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
 
#define MUPNP_XML_CONTENT_TYPE   "text/xml; charset=\"utf-8\""
 
#define MUPNP_XML_CONTENT_LF   "\n"
 
#define mupnp_xml_attributelist_clear(attrList)
 
#define mupnp_xml_attributelist_size(attrList)
 
#define mupnp_xml_attributelist_gets(attrList)
 
#define mupnp_xml_attributelist_add(attrList, attr)
 
#define mupnp_xml_attribute_next(attr)
 
#define mupnp_xml_attribute_remove(attr)
 
#define mupnp_xml_nodelist_clear(nodeList)
 
#define mupnp_xml_nodelist_size(nodeList)
 
#define mupnp_xml_nodelist_gets(nodeList)
 
#define mupnp_xml_nodelist_add(nodeList, node)
 
#define mupnp_xml_nodelist_get(nodeList, name)
 
#define mupnp_xml_node_next(node)
 
#define mupnp_xml_node_remove(node)
 
#define mupnp_xml_node_setname(node, nodename)
 
#define mupnp_xml_node_getname(node)
 
#define mupnp_xml_node_isname(node, nodename)
 
#define mupnp_xml_node_setvalue(node, nodevalue)
 
#define mupnp_xml_node_setintvalue(node, nodevalue)
 
#define mupnp_xml_node_setlongvalue(node, nodevalue)
 
#define mupnp_xml_node_setnvalue(node, nodevalue, nodevaluelen)
 
#define mupnp_xml_node_addvalue(node, nodevalue)
 
#define mupnp_xml_node_naddvalue(node, nodevalue, len)
 
#define mupnp_xml_node_getvalue(node)
 
#define mupnp_xml_node_getintvalue(node)
 
#define mupnp_xml_node_getlongvalue(node)
 
#define mupnp_xml_node_setparentnode(node, pnode)
 
#define mupnp_xml_node_getparentnode(node)
 
#define mupnp_xml_node_getchildnodelist(node)
 
#define mupnp_xml_node_getchildnodeintvalue(node, name)
 
#define mupnp_xml_node_getchildnodelongvalue(node, name)
 
#define mupnp_xml_node_setuserdata(node, data)
 
#define mupnp_xml_node_getuserdata(node)
 
#define mupnp_xml_node_setuserdatadestructor(node, func)
 
#define mupnp_xml_node_getchildnodes(node)
 
#define mupnp_xml_node_haschildnodes(node)
 
#define mupnp_xml_node_getchildnode(node, name)
 
#define mupnp_xml_node_getchildnodebyname(node, name)
 
#define mupnp_xml_node_getchildnodebyxpath(node, xpath)
 
#define mupnp_xml_node_getattributes(node)
 
#define mupnp_xml_node_getattribute(node, name)
 
#define mupnp_xml_node_addattribute(node, attr)
 
#define mupnp_xml_node_setattribute(node, name, value)
 
#define mupnp_xml_node_getattributevalue(node, name)
 
#define mupnp_xml_node_setnamespace(node, ns, value)
 

Typedefs

typedef void(* MUPNP_XML_NODE_USERDATA_DESTRUCTORFUNC) (void *)
 
typedef struct _mUpnpXmlAttribute mUpnpXmlAttribute
 
typedef struct _mUpnpXmlAttribute mUpnpXmlAttributeList
 
typedef struct _mUpnpXmlNode mUpnpXmlNode
 
typedef struct _mUpnpXmlNode mUpnpXmlNodeList
 
typedef struct _mUpnpXmlParser mUpnpXmlParser
 

Functions

mUpnpXmlAttributeListmupnp_xml_attributelist_new (void)
 
void mupnp_xml_attributelist_delete (mUpnpXmlAttributeList *attrList)
 
void mupnp_xml_attributelist_set (mUpnpXmlAttributeList *attrList, const char *name, const char *value)
 
mUpnpXmlAttributemupnp_xml_attributelist_get (mUpnpXmlAttributeList *attrList, const char *name)
 
const char * mupnp_xml_attributelist_getvalue (mUpnpXmlAttributeList *attrList, const char *name)
 
mUpnpXmlAttributemupnp_xml_attribute_new (void)
 
void mupnp_xml_attribute_delete (mUpnpXmlAttribute *attr)
 
void mupnp_xml_attribute_setname (mUpnpXmlAttribute *attr, const char *name)
 
const char * mupnp_xml_attribute_getname (mUpnpXmlAttribute *attr)
 
bool mupnp_xml_attribute_isname (mUpnpXmlAttribute *attr, const char *name)
 
void mupnp_xml_attribute_setvalue (mUpnpXmlAttribute *attr, const char *value)
 
const char * mupnp_xml_attribute_getvalue (mUpnpXmlAttribute *attr)
 
mUpnpXmlNodeListmupnp_xml_nodelist_new (void)
 
void mupnp_xml_nodelist_delete (mUpnpXmlNodeList *nodeList)
 
mUpnpXmlNodemupnp_xml_nodelist_getbyname (mUpnpXmlNodeList *nodeList, const char *name)
 
mUpnpXmlNodemupnp_xml_nodelist_getbyxpath (mUpnpXmlNodeList *nodeList, const char *xpath)
 
mUpnpXmlNodemupnp_xml_node_new (void)
 
void mupnp_xml_node_delete (mUpnpXmlNode *node)
 
mUpnpXmlNodemupnp_xml_node_getrootnode (mUpnpXmlNode *node)
 
void mupnp_xml_node_addchildnode (mUpnpXmlNode *node, mUpnpXmlNode *cnode)
 
void mupnp_xml_node_setchildnode (mUpnpXmlNode *node, const char *name, const char *value)
 
bool mupnp_xml_node_removechildnode (mUpnpXmlNode *node, const char *name)
 
const char * mupnp_xml_node_getchildnodevalue (mUpnpXmlNode *node, const char *name)
 
mUpnpXmlNodemupnp_xml_node_getchildnodewithnamespace (mUpnpXmlNode *node, const char *name, const char *ns, bool ignoreNs)
 
bool mupnp_xml_node_removeattribute (mUpnpXmlNode *node, const char *name)
 
char * mupnp_xml_node_tostring (mUpnpXmlNode *node, bool withChildNode, mUpnpString *str)
 
void mupnp_xml_node_print (mUpnpXmlNode *node)
 
void mupnp_xml_node_copy (mUpnpXmlNode *dstNode, mUpnpXmlNode *srcNode)
 
mUpnpXmlParsermupnp_xml_parser_new (void)
 
void mupnp_xml_parser_delete (mUpnpXmlParser *parser)
 
bool mupnp_xml_parse (mUpnpXmlParser *parser, mUpnpXmlNodeList *nodeList, const char *data, size_t len)
 
char * mupnp_xml_escapechars (mUpnpString *str)
 
char * mupnp_xml_unescapechars (mUpnpString *str)
 

Macro Definition Documentation

◆ mupnp_xml_attribute_next

#define mupnp_xml_attribute_next ( attr)
Value:
mUpnpList * mupnp_list_next(mUpnpList *list)
Definition list.c:234
The generic list interface in mUPnP.
Definition list.h:56
Definition xml.h:38

◆ mupnp_xml_attribute_remove

#define mupnp_xml_attribute_remove ( attr)
Value:
void mupnp_list_remove(mUpnpList *list)
Definition list.c:144

◆ mupnp_xml_attributelist_add

#define mupnp_xml_attributelist_add ( attrList,
attr )
Value:
mupnp_list_add((mUpnpList*)attrList, (mUpnpList*)attr)
void mupnp_list_add(mUpnpList *headList, mUpnpList *list)
Definition list.c:123

◆ mupnp_xml_attributelist_clear

#define mupnp_xml_attributelist_clear ( attrList)
Value:
void mupnp_list_clear(mUpnpList *headList, MUPNP_LIST_DESTRUCTORFUNC destructorFunc)
Definition list.c:257
void(* MUPNP_LIST_DESTRUCTORFUNC)(void *)
Definition list.h:29
void mupnp_xml_attribute_delete(mUpnpXmlAttribute *attr)
Definition xml_attribute.c:41

◆ mupnp_xml_attributelist_gets

#define mupnp_xml_attributelist_gets ( attrList)

◆ mupnp_xml_attributelist_size

#define mupnp_xml_attributelist_size ( attrList)
Value:
int mupnp_list_size(mUpnpList *headList)
Definition list.c:53

◆ MUPNP_XML_CONTENT_LF

#define MUPNP_XML_CONTENT_LF   "\n"

◆ MUPNP_XML_CONTENT_TYPE

#define MUPNP_XML_CONTENT_TYPE   "text/xml; charset=\"utf-8\""

◆ MUPNP_XML_INDENT_STRING

#define MUPNP_XML_INDENT_STRING   " "

◆ mupnp_xml_node_addattribute

#define mupnp_xml_node_addattribute ( node,
attr )
Value:
mupnp_xml_attributelist_add(node->attrList, attr)
#define mupnp_xml_attributelist_add(attrList, attr)
Definition xml.h:71

◆ mupnp_xml_node_addvalue

#define mupnp_xml_node_addvalue ( node,
nodevalue )
Value:
mupnp_string_addvalue(node->value, nodevalue)
char * mupnp_string_addvalue(mUpnpString *str, const char *value)
Definition string.c:225

◆ mupnp_xml_node_getattribute

#define mupnp_xml_node_getattribute ( node,
name )
Value:
mupnp_xml_attributelist_get(node->attrList, name)
mUpnpXmlAttribute * mupnp_xml_attributelist_get(mUpnpXmlAttributeList *attrList, const char *name)
Definition xml_attribute_list.c:56

◆ mupnp_xml_node_getattributes

#define mupnp_xml_node_getattributes ( node)
Value:
#define mupnp_xml_attributelist_gets(attrList)
Definition xml.h:70

◆ mupnp_xml_node_getattributevalue

#define mupnp_xml_node_getattributevalue ( node,
name )
Value:
mupnp_xml_attributelist_getvalue(node->attrList, name)
const char * mupnp_xml_attributelist_getvalue(mUpnpXmlAttributeList *attrList, const char *name)
Definition xml_attribute_list.c:105

◆ mupnp_xml_node_getchildnode

#define mupnp_xml_node_getchildnode ( node,
name )
Value:
((node != NULL) ? mupnp_xml_nodelist_getbyname(node->nodeList, name) : NULL)
mUpnpXmlNode * mupnp_xml_nodelist_getbyname(mUpnpXmlNodeList *nodeList, const char *name)
Definition xml_node_list.c:62

◆ mupnp_xml_node_getchildnodebyname

#define mupnp_xml_node_getchildnodebyname ( node,
name )
Value:
((node != NULL) ? mupnp_xml_nodelist_getbyname(node->nodeList, name) : NULL)

◆ mupnp_xml_node_getchildnodebyxpath

#define mupnp_xml_node_getchildnodebyxpath ( node,
xpath )
Value:
((node != NULL) ? mupnp_xml_nodelist_getbyxpath(node->nodeList, xpath) : NULL)
mUpnpXmlNode * mupnp_xml_nodelist_getbyxpath(mUpnpXmlNodeList *nodeList, const char *xpath)
Definition xml_node_list.c:89

◆ mupnp_xml_node_getchildnodeintvalue

#define mupnp_xml_node_getchildnodeintvalue ( node,
name )
Value:
#define mupnp_str2int(value)
Definition string.h:70
const char * mupnp_xml_node_getchildnodevalue(mUpnpXmlNode *node, const char *name)
Definition xml_node.c:216

◆ mupnp_xml_node_getchildnodelist

#define mupnp_xml_node_getchildnodelist ( node)
Value:
(node->nodeList)

◆ mupnp_xml_node_getchildnodelongvalue

#define mupnp_xml_node_getchildnodelongvalue ( node,
name )
Value:
#define mupnp_str2long(value)
Definition string.h:71

◆ mupnp_xml_node_getchildnodes

#define mupnp_xml_node_getchildnodes ( node)
Value:
mupnp_xml_nodelist_gets(node->nodeList)
#define mupnp_xml_nodelist_gets(nodeList)
Definition xml.h:103

◆ mupnp_xml_node_getintvalue

#define mupnp_xml_node_getintvalue ( node)
Value:
#define mupnp_string_getintvalue(str)
Definition string.h:130

◆ mupnp_xml_node_getlongvalue

#define mupnp_xml_node_getlongvalue ( node)
Value:
#define mupnp_string_getlongvalue(str)
Definition string.h:131

◆ mupnp_xml_node_getname

#define mupnp_xml_node_getname ( node)
Value:
char * mupnp_string_getvalue(mUpnpString *str)
Definition string.c:177

◆ mupnp_xml_node_getparentnode

#define mupnp_xml_node_getparentnode ( node)
Value:
(node->parentNode)

◆ mupnp_xml_node_getuserdata

#define mupnp_xml_node_getuserdata ( node)
Value:
(node->userData)

◆ mupnp_xml_node_getvalue

#define mupnp_xml_node_getvalue ( node)
Value:

◆ mupnp_xml_node_haschildnodes

#define mupnp_xml_node_haschildnodes ( node)
Value:
((mupnp_xml_node_getchildnodes(node) != NULL) ? true : false)
#define true
Definition typedef.h:63
#define mupnp_xml_node_getchildnodes(node)
Definition xml.h:151

◆ mupnp_xml_node_isname

#define mupnp_xml_node_isname ( node,
nodename )
Value:
(mupnp_strcmp(mupnp_xml_node_getname(node), nodename) == 0 ? true : false)
int mupnp_strcmp(const char *str1, const char *str2)
Definition string_function.c:100
#define mupnp_xml_node_getname(node)
Definition xml.h:122

◆ mupnp_xml_node_naddvalue

#define mupnp_xml_node_naddvalue ( node,
nodevalue,
len )
Value:
mupnp_string_naddvalue(node->value, nodevalue, len)
char * mupnp_string_naddvalue(mUpnpString *str, const char *value, size_t valueLen)
Definition string.c:238

◆ mupnp_xml_node_next

#define mupnp_xml_node_next ( node)
Value:
Definition xml.h:45

◆ mupnp_xml_node_remove

#define mupnp_xml_node_remove ( node)

◆ mupnp_xml_node_setattribute

#define mupnp_xml_node_setattribute ( node,
name,
value )
Value:
mupnp_xml_attributelist_set(node->attrList, name, value)
void mupnp_xml_attributelist_set(mUpnpXmlAttributeList *attrList, const char *name, const char *value)
Definition xml_attribute_list.c:83

◆ mupnp_xml_node_setintvalue

#define mupnp_xml_node_setintvalue ( node,
nodevalue )
Value:
mupnp_string_setintvalue(node->value, nodevalue)
void mupnp_string_setintvalue(mUpnpString *str, int value)
Definition string.c:100

◆ mupnp_xml_node_setlongvalue

#define mupnp_xml_node_setlongvalue ( node,
nodevalue )
Value:
mupnp_string_setlongvalue(node->value, nodevalue)
void mupnp_string_setlongvalue(mUpnpString *str, long value)
Definition string.c:115

◆ mupnp_xml_node_setname

#define mupnp_xml_node_setname ( node,
nodename )
Value:
mupnp_string_setvalue(node->name, nodename)
void mupnp_string_setvalue(mUpnpString *str, const char *value)
Definition string.c:84

◆ mupnp_xml_node_setnamespace

#define mupnp_xml_node_setnamespace ( node,
ns,
value )
Value:
mupnp_xml_node_setattribute(node, "xmlns:" ns, value)
#define mupnp_xml_node_setattribute(node, name, value)
Definition xml.h:165

◆ mupnp_xml_node_setnvalue

#define mupnp_xml_node_setnvalue ( node,
nodevalue,
nodevaluelen )
Value:
mupnp_string_setnvalue(node->value, nodevalue, nodevaluelen)
void mupnp_string_setnvalue(mUpnpString *str, const char *value, size_t len)
Definition string.c:130

◆ mupnp_xml_node_setparentnode

#define mupnp_xml_node_setparentnode ( node,
pnode )
Value:
(node->parentNode = pnode)

◆ mupnp_xml_node_setuserdata

#define mupnp_xml_node_setuserdata ( node,
data )
Value:
(node->userData = data)

◆ mupnp_xml_node_setuserdatadestructor

#define mupnp_xml_node_setuserdatadestructor ( node,
func )
Value:
(node->userDataDestructorFunc = func)

◆ mupnp_xml_node_setvalue

#define mupnp_xml_node_setvalue ( node,
nodevalue )
Value:
mupnp_string_setvalue(node->value, nodevalue)

◆ mupnp_xml_nodelist_add

#define mupnp_xml_nodelist_add ( nodeList,
node )
Value:
mupnp_list_add((mUpnpList*)(nodeList), (mUpnpList*)(node))

◆ mupnp_xml_nodelist_clear

#define mupnp_xml_nodelist_clear ( nodeList)
Value:
void mupnp_xml_node_delete(mUpnpXmlNode *node)
Definition xml_node.c:48

◆ mupnp_xml_nodelist_get

#define mupnp_xml_nodelist_get ( nodeList,
name )
Value:

◆ mupnp_xml_nodelist_gets

#define mupnp_xml_nodelist_gets ( nodeList)
Value:

◆ mupnp_xml_nodelist_size

#define mupnp_xml_nodelist_size ( nodeList)
Value:

◆ MUPNP_XML_VERSION_HEADER

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

Typedef Documentation

◆ MUPNP_XML_NODE_USERDATA_DESTRUCTORFUNC

typedef void(* MUPNP_XML_NODE_USERDATA_DESTRUCTORFUNC) (void *)

◆ mUpnpXmlAttribute

◆ mUpnpXmlAttributeList

◆ mUpnpXmlNode

typedef struct _mUpnpXmlNode mUpnpXmlNode

◆ mUpnpXmlNodeList

◆ mUpnpXmlParser

Function Documentation

◆ mupnp_xml_attribute_delete()

void mupnp_xml_attribute_delete ( mUpnpXmlAttribute * attr)

◆ mupnp_xml_attribute_getname()

const char * mupnp_xml_attribute_getname ( mUpnpXmlAttribute * attr)

◆ mupnp_xml_attribute_getvalue()

const char * mupnp_xml_attribute_getvalue ( mUpnpXmlAttribute * attr)

◆ mupnp_xml_attribute_isname()

bool mupnp_xml_attribute_isname ( mUpnpXmlAttribute * attr,
const char * name )

◆ mupnp_xml_attribute_new()

mUpnpXmlAttribute * mupnp_xml_attribute_new ( void )

◆ mupnp_xml_attribute_setname()

void mupnp_xml_attribute_setname ( mUpnpXmlAttribute * attr,
const char * name )

◆ mupnp_xml_attribute_setvalue()

void mupnp_xml_attribute_setvalue ( mUpnpXmlAttribute * attr,
const char * value )

◆ mupnp_xml_attributelist_delete()

void mupnp_xml_attributelist_delete ( mUpnpXmlAttributeList * attrList)

◆ mupnp_xml_attributelist_get()

mUpnpXmlAttribute * mupnp_xml_attributelist_get ( mUpnpXmlAttributeList * attrList,
const char * name )

◆ mupnp_xml_attributelist_getvalue()

const char * mupnp_xml_attributelist_getvalue ( mUpnpXmlAttributeList * attrList,
const char * name )

◆ mupnp_xml_attributelist_new()

mUpnpXmlAttributeList * mupnp_xml_attributelist_new ( void )

◆ mupnp_xml_attributelist_set()

void mupnp_xml_attributelist_set ( mUpnpXmlAttributeList * attrList,
const char * name,
const char * value )

◆ mupnp_xml_escapechars()

char * mupnp_xml_escapechars ( mUpnpString * str)

◆ mupnp_xml_node_addchildnode()

void mupnp_xml_node_addchildnode ( mUpnpXmlNode * node,
mUpnpXmlNode * cnode )

◆ mupnp_xml_node_copy()

void mupnp_xml_node_copy ( mUpnpXmlNode * dstNode,
mUpnpXmlNode * srcNode )

◆ mupnp_xml_node_delete()

void mupnp_xml_node_delete ( mUpnpXmlNode * node)

◆ mupnp_xml_node_getchildnodevalue()

const char * mupnp_xml_node_getchildnodevalue ( mUpnpXmlNode * node,
const char * name )

◆ mupnp_xml_node_getchildnodewithnamespace()

mUpnpXmlNode * mupnp_xml_node_getchildnodewithnamespace ( mUpnpXmlNode * node,
const char * name,
const char * ns,
bool ignoreNs )

◆ mupnp_xml_node_getrootnode()

mUpnpXmlNode * mupnp_xml_node_getrootnode ( mUpnpXmlNode * node)

◆ mupnp_xml_node_new()

mUpnpXmlNode * mupnp_xml_node_new ( void )

◆ mupnp_xml_node_print()

void mupnp_xml_node_print ( mUpnpXmlNode * node)

◆ mupnp_xml_node_removeattribute()

bool mupnp_xml_node_removeattribute ( mUpnpXmlNode * node,
const char * name )

◆ mupnp_xml_node_removechildnode()

bool mupnp_xml_node_removechildnode ( mUpnpXmlNode * node,
const char * name )

◆ mupnp_xml_node_setchildnode()

void mupnp_xml_node_setchildnode ( mUpnpXmlNode * node,
const char * name,
const char * value )

◆ mupnp_xml_node_tostring()

char * mupnp_xml_node_tostring ( mUpnpXmlNode * node,
bool withChildNode,
mUpnpString * str )

◆ mupnp_xml_nodelist_delete()

void mupnp_xml_nodelist_delete ( mUpnpXmlNodeList * nodeList)

◆ mupnp_xml_nodelist_getbyname()

mUpnpXmlNode * mupnp_xml_nodelist_getbyname ( mUpnpXmlNodeList * nodeList,
const char * name )

◆ mupnp_xml_nodelist_getbyxpath()

mUpnpXmlNode * mupnp_xml_nodelist_getbyxpath ( mUpnpXmlNodeList * nodeList,
const char * xpath )

◆ mupnp_xml_nodelist_new()

mUpnpXmlNodeList * mupnp_xml_nodelist_new ( void )

◆ mupnp_xml_parse()

bool mupnp_xml_parse ( mUpnpXmlParser * parser,
mUpnpXmlNodeList * nodeList,
const char * data,
size_t len )

◆ mupnp_xml_parser_delete()

void mupnp_xml_parser_delete ( mUpnpXmlParser * parser)

◆ mupnp_xml_parser_new()

mUpnpXmlParser * mupnp_xml_parser_new ( void )

◆ mupnp_xml_unescapechars()

char * mupnp_xml_unescapechars ( mUpnpString * str)