GLBasic forum

Codesnippets => Code Snippets => Topic started by: Schranz0r on 2009-Nov-29

Title: MiniXML a XML-Wrapper
Post by: Schranz0r on 2009-Nov-29
Hi,

I start a MiniXML-Wrapper but have no time to complett it...
If someone want to finish that, pls let me know ;)


IMPORTANT:

1. You have to add: -lmxml  on project/options/inc
2. put the libfile(libmxml.a) into C:\Program Files\GLBasic\Compiler\platform\Win32\Lib
3. Be sure you have all headers/c-files into the projectfolder!


[MAIN GBAS]
Code (glbasic) Select

LOCAL xml = MXML_Create_MXML_Node_t()
LOCAL dat = MXML_Create_MXML_Node_t()
LOCAL node = MXML_Create_MXML_Node_t()
LOCAL group = MXML_Create_MXML_Node_t()


MXML_mxmlNewXML(xml,"1.0")

MXNL_mxmlNewElement(dat, xml, "data")
MXNL_mxmlNewElement(node, dat, "node")
MXML_mxmlNewText(node,"val1", 0)
MXNL_mxmlNewElement(node, dat, "node")
MXML_mxmlNewText(node,"val2", 0)
MXNL_mxmlNewElement(node, dat, "node")
MXML_mxmlNewText(node,"val3", 0)

MXNL_mxmlNewElement(group, dat,"group");

MXNL_mxmlNewElement(node, dat, "node")
MXML_mxmlNewText(node,"val1", 0)
MXNL_mxmlNewElement(node, dat, "node")
MXML_mxmlNewText(node,"val2", 0)
MXNL_mxmlNewElement(node, dat, "node")
MXML_mxmlNewText(node,"val3", 0)

MXML_mxmlSaveFile(xml, "test.xml")


WHILE TRUE




SHOWSCREEN
WEND
END


[WRAPP GBAS]

Code (glbasic) Select
INLINE
}
// mainheader
#include "mxml.h"

DGArray<mxml_node_t*>xml_node;  // wrapp nodes* inta a DGArray

namespace __GLBASIC__{//restore the GLB-Namespace
ENDINLINE


FUNCTION MXML_Create_MXML_Node_t:
INLINE
mxml_node_t* node;
DIMPUSH(xml_node, node);
return LEN(xml_node)-1;
ENDINLINE
ENDFUNCTION




FUNCTION MXML_mxmlNewXML: node, version$ = "1.0"
INLINE
xml_node(node) = mxmlNewXML( version_Str.c_str() );
ENDINLINE
ENDFUNCTION


FUNCTION MXNL_mxmlNewElement:parent_node, child_node, name$
INLINE
xml_node(parent_node) = mxmlNewElement(xml_node(child_node), name_Str.c_str());
ENDINLINE
ENDFUNCTION

FUNCTION MXML_mxmlNewText: parent_node, string$, whitespace= TRUE
INLINE
mxmlNewText(xml_node(parent_node), whitespace, string_Str.c_str());
ENDINLINE
ENDFUNCTION


FUNCTION MXML_mxmlSaveFile: xml, name$
INLINE
FILE *fp;
    fp = fopen( name_Str.c_str(), "w");
    mxmlSaveFile(xml_node(xml), fp, MXML_NO_CALLBACK);
    fclose(fp);
ENDINLINE
ENDFUNCTION




[attachment deleted by admin]
Title: Re: MiniXML a XML-Wrapper
Post by: Schranz0r on 2009-Nov-30
 :whip:
Title: Re: MiniXML a XML-Wrapper
Post by: Kitty Hello on 2009-Nov-30
oh, cool. Is that x-platform?
Title: Re: MiniXML a XML-Wrapper
Post by: Schranz0r on 2009-Nov-30
If Trucidare compile it for other platforms yes :)