MiniXML a XML-Wrapper

Previous topic - Next topic

Schranz0r

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]
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Schranz0r

I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

oh, cool. Is that x-platform?

Schranz0r

If Trucidare compile it for other platforms yes :)
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard