Functions |
GWENHYWFAR_API
GWEN_XMLNODE_NAMESPACE * | GWEN_XMLNode_NameSpace_dup (const GWEN_XMLNODE_NAMESPACE *ns) |
GWENHYWFAR_API void | GWEN_XMLNode_NameSpace_free (GWEN_XMLNODE_NAMESPACE *ns) |
GWENHYWFAR_API const char * | GWEN_XMLNode_NameSpace_GetName (const GWEN_XMLNODE_NAMESPACE *ns) |
GWENHYWFAR_API const char * | GWEN_XMLNode_NameSpace_GetUrl (const GWEN_XMLNODE_NAMESPACE *ns) |
GWENHYWFAR_API
GWEN_XMLNODE_NAMESPACE * | GWEN_XMLNode_NameSpace_new (const char *name, const char *url) |
GWENHYWFAR_API int | GWEN_XMLNode_Path_Dive (GWEN_XMLNODE_PATH *np, GWEN_XMLNODE *n) |
GWENHYWFAR_API void | GWEN_XMLNode_Path_Dump (GWEN_XMLNODE_PATH *np) |
GWENHYWFAR_API GWEN_XMLNODE_PATH * | GWEN_XMLNode_Path_dup (const GWEN_XMLNODE_PATH *np) |
GWENHYWFAR_API void | GWEN_XMLNode_Path_free (GWEN_XMLNODE_PATH *np) |
GWENHYWFAR_API GWEN_XMLNODE_PATH * | GWEN_XMLNode_Path_new (void) |
GWENHYWFAR_API GWEN_XMLNODE * | GWEN_XMLNode_Path_Surface (GWEN_XMLNODE_PATH *np) |
|
GWENHYWFAR_API GWEN_XMLNODE * | GWEN_XMLNode_new (GWEN_XMLNODE_TYPE t, const char *data) |
GWENHYWFAR_API void | GWEN_XMLNode_free (GWEN_XMLNODE *n) |
GWENHYWFAR_API void | GWEN_XMLNode_freeAll (GWEN_XMLNODE *n) |
GWENHYWFAR_API GWEN_XMLNODE * | GWEN_XMLNode_dup (const GWEN_XMLNODE *n) |
|
Headers are special tags in XML files which describe the document (such as <?xml?> or <!DOCTYPE>).
If the flag GWEN_XML_FLAGS_HANDLE_HEADERS is on upon reading of files these special toplevel tags are added to the current node's header list instead of the normal children node list.
If the same flag is given when writing files the header tags of the given root node are written to the output stream before its children.
Header nodes are identified as nodes whose name begins with '?' or '!'.
|
GWENHYWFAR_API GWEN_XMLNODE * | GWEN_XMLNode_GetHeader (const GWEN_XMLNODE *n) |
GWENHYWFAR_API void | GWEN_XMLNode_AddHeader (GWEN_XMLNODE *root, GWEN_XMLNODE *nh) |
GWENHYWFAR_API void | GWEN_XMLNode_DelHeader (GWEN_XMLNODE *root, GWEN_XMLNODE *nh) |
GWENHYWFAR_API void | GWEN_XMLNode_ClearHeaders (GWEN_XMLNODE *root) |
|
A property (in XML notation this is called attribute) is given within a tag (in XML notation this is called element), like in this example:
|
GWENHYWFAR_API const char * | GWEN_XMLNode_GetProperty (const GWEN_XMLNODE *n, const char *name, const char *defaultValue) |
GWENHYWFAR_API void | GWEN_XMLNode_SetProperty (GWEN_XMLNODE *n, const char *name, const char *value) |
GWENHYWFAR_API int | GWEN_XMLNode_GetIntProperty (const GWEN_XMLNODE *n, const char *name, int defaultValue) |
GWENHYWFAR_API void | GWEN_XMLNode_SetIntProperty (GWEN_XMLNODE *n, const char *name, int value) |
GWENHYWFAR_API void | GWEN_XMLNode_CopyProperties (GWEN_XMLNODE *tn, const GWEN_XMLNODE *sn, int overwrite) |
|
GWENHYWFAR_API GWEN_XMLNODE_TYPE | GWEN_XMLNode_GetType (const GWEN_XMLNODE *n) |
GWENHYWFAR_API const char * | GWEN_XMLNode_GetData (const GWEN_XMLNODE *n) |
GWENHYWFAR_API void | GWEN_XMLNode_SetData (GWEN_XMLNODE *n, const char *data) |
GWENHYWFAR_API const char * | GWEN_XMLNode_GetNamespace (const GWEN_XMLNODE *n) |
GWENHYWFAR_API void | GWEN_XMLNode_SetNamespace (GWEN_XMLNODE *n, const char *s) |
|
The usage counter of a node is only used by applications, not by Gwenhywfar itself. So if the application does not set this counter it will always be zero.
An application could use this counter to check whether a given node is still in use by some parts of the application in order to free unused nodes.
|
GWENHYWFAR_API void | GWEN_XMLNode_IncUsage (GWEN_XMLNODE *n) |
GWENHYWFAR_API void | GWEN_XMLNode_DecUsage (GWEN_XMLNODE *n) |
GWENHYWFAR_API uint32_t | GWEN_XMLNode_GetUsage (const GWEN_XMLNODE *n) |
|
GWENHYWFAR_API GWEN_XMLNODE * | GWEN_XMLNode_Next (const GWEN_XMLNODE *n) |
GWENHYWFAR_API GWEN_XMLNODE * | GWEN_XMLNode_GetChild (const GWEN_XMLNODE *n) |
GWENHYWFAR_API GWEN_XMLNODE * | GWEN_XMLNode_GetParent (const GWEN_XMLNODE *n) |
GWENHYWFAR_API GWEN_XMLNODE * | GWEN_XMLNode_GetFirstTag (const GWEN_XMLNODE *n) |
GWENHYWFAR_API GWEN_XMLNODE * | GWEN_XMLNode_GetNextTag (const GWEN_XMLNODE *n) |
GWENHYWFAR_API GWEN_XMLNODE * | GWEN_XMLNode_GetFirstData (const GWEN_XMLNODE *n) |
GWENHYWFAR_API GWEN_XMLNODE * | GWEN_XMLNode_GetNextData (const GWEN_XMLNODE *n) |
GWENHYWFAR_API GWEN_XMLNODE * | GWEN_XMLNode_FindFirstTag (const GWEN_XMLNODE *n, const char *tname, const char *pname, const char *pvalue) |
GWENHYWFAR_API GWEN_XMLNODE * | GWEN_XMLNode_FindNextTag (const GWEN_XMLNODE *n, const char *tname, const char *pname, const char *pvalue) |
GWENHYWFAR_API int | GWEN_XMLNode_IsChildOf (const GWEN_XMLNODE *parent, const GWEN_XMLNODE *child) |
GWENHYWFAR_API int | GWEN_XMLNode_GetXPath (const GWEN_XMLNODE *n1, const GWEN_XMLNODE *n2, GWEN_BUFFER *nbuf) |
GWENHYWFAR_API GWEN_XMLNODE * | GWEN_XMLNode_GetNodeByXPath (GWEN_XMLNODE *n, const char *path, uint32_t flags) |
|
GWENHYWFAR_API void | GWEN_XMLNode_AddChild (GWEN_XMLNODE *n, GWEN_XMLNODE *child) |
GWENHYWFAR_API void | GWEN_XMLNode_UnlinkChild (GWEN_XMLNODE *n, GWEN_XMLNODE *child) |
GWENHYWFAR_API void | GWEN_XMLNode_RemoveChildren (GWEN_XMLNODE *n) |
GWENHYWFAR_API void | GWEN_XMLNode_AddChildrenOnly (GWEN_XMLNODE *n, GWEN_XMLNODE *nn, int copythem) |
GWENHYWFAR_API GWEN_XMLNODE * | GWEN_XMLNode_FindNode (const GWEN_XMLNODE *n, GWEN_XMLNODE_TYPE t, const char *data) |
|
GWENHYWFAR_API int | GWEN_XMLNode_NormalizeNameSpaces (GWEN_XMLNODE *n) |
GWENHYWFAR_API int | GWEN_XMLNode_StripNamespaces (GWEN_XMLNODE *n) |
GWENHYWFAR_API int | GWEN_XMLNode_Globalize (GWEN_XMLNODE *n) |
GWENHYWFAR_API int | GWEN_XMLNode_GlobalizeWithList (GWEN_XMLNODE *n, GWEN_XMLNODE_NAMESPACE_LIST *l, uint32_t *pLastId) |
GWENHYWFAR_API int | GWEN_XML_ReadFromFastBuffer (GWEN_XML_CONTEXT *ctx, GWEN_FAST_BUFFER *fb) |
GWENHYWFAR_API int | GWEN_XMLContext_ReadFromIo (GWEN_XML_CONTEXT *ctx, GWEN_SYNCIO *io) |
GWENHYWFAR_API int | GWEN_XMLContext_ReadFromFile (GWEN_XML_CONTEXT *ctx, const char *fname) |
GWENHYWFAR_API int | GWEN_XMLContext_ReadFromString (GWEN_XML_CONTEXT *ctx, const char *text) |
GWENHYWFAR_API int | GWEN_XML_ReadFile (GWEN_XMLNODE *n, const char *filepath, uint32_t flags) |
GWENHYWFAR_API GWEN_XMLNODE * | GWEN_XMLNode_fromString (const char *s, int len, uint32_t flags) |
GWENHYWFAR_API int | GWEN_XMLNode_WriteToStream (const GWEN_XMLNODE *n, GWEN_XML_CONTEXT *ctx, GWEN_SYNCIO *sio) |
GWENHYWFAR_API int | GWEN_XMLNode_WriteFile (const GWEN_XMLNODE *n, const char *fname, uint32_t flags) |
GWENHYWFAR_API int | GWEN_XMLNode_toBuffer (const GWEN_XMLNODE *n, GWEN_BUFFER *buf, uint32_t flags) |
GWENHYWFAR_API
GWEN_XMLNODE_NAMESPACE_LIST * | GWEN_XMLNode_GetNameSpaces (const GWEN_XMLNODE *n) |
GWENHYWFAR_API
GWEN_XMLNODE_NAMESPACE * | GWEN_XMLNode_FindNameSpaceByName (const GWEN_XMLNODE *n, const char *s) |
GWENHYWFAR_API
GWEN_XMLNODE_NAMESPACE * | GWEN_XMLNode_FindNameSpaceByUrl (const GWEN_XMLNODE *n, const char *s) |
GWENHYWFAR_API void | GWEN_XMLNode_AddNameSpace (GWEN_XMLNODE *n, const GWEN_XMLNODE_NAMESPACE *ns) |
|
These functions look for a tag, read their first data element and return it as if it was a DB variable. This simplifies access to simple tags containing simple data tags only. E.g. if your XML structure is this:
<test>
<X> 15 </X>
<Y> 10 </Y>
</test>
... then you can access the value of X with the following call:
If the given variables do not exist or have no value then the also given default value will be returned.
|
GWENHYWFAR_API const char * | GWEN_XMLNode_GetCharValue (const GWEN_XMLNODE *n, const char *name, const char *defValue) |
GWENHYWFAR_API void | GWEN_XMLNode_SetCharValue (GWEN_XMLNODE *n, const char *name, const char *value) |
GWENHYWFAR_API const char * | GWEN_XMLNode_GetLocalizedCharValue (const GWEN_XMLNODE *n, const char *name, const char *defValue) |
GWENHYWFAR_API int | GWEN_XMLNode_GetIntValue (const GWEN_XMLNODE *n, const char *name, int defValue) |
GWENHYWFAR_API void | GWEN_XMLNode_SetIntValue (GWEN_XMLNODE *n, const char *name, int value) |
|
GWENHYWFAR_API void | GWEN_XMLNode_Dump (const GWEN_XMLNODE *n, int ind) |