MINIXML使用

来源:互联网 发布:php开发工程师培训 编辑:程序博客网 时间:2024/06/05 17:19

<?xml version="1.0" encoding="utf-8"?><data><node>val1</node><node>value</node><node>val3</node><group><node>val4</node><node>val5</node><node>val6</node></group><node>val7</node><node>val8</node></data>

#include <mxml.h>
int main()
{

    mxml_node_t *tree;    /* <?xml ... ?> */
    mxml_node_t *data;   /* <data> */
    mxml_node_t *node;   /* <node> */
    mxml_node_t *group;  /* <group> */
mxml_type_t type;
int white = 1;
char * p = NULL;
    FILE *fp;

    fp = fopen("filename.xml", "r+");
    tree = mxmlLoadFile(NULL, fp,
                        MXML_TEXT_CALLBACK);

printf("tree = %p\n", tree);
    data = mxmlFindElement(tree, tree, "data",
                           NULL, NULL,
                           MXML_DESCEND);

printf("data = %p\n", node);

node = mxmlFindElement(data, tree, "node",
                           NULL, NULL,
                           MXML_DESCEND);
printf("node = %p\n", node);
p = mxmlGetText(node, &white);
printf("p = %s\n", p);

node = mxmlFindElement(node, tree, "node",
                           NULL, NULL,
                           MXML_DESCEND);
printf("node = %p\n", node);
p = mxmlGetText(node, &white);
printf("p = %s\n", p);

int ret = mxmlSetText(node, white, "value");
printf("ret = %d\n", ret);
p = mxmlGetText(node, &white);
printf("p = %s\n", p);                     
fseek ( fp , 0 , SEEK_SET );
mxmlSaveFile(tree, fp, MXML_NO_CALLBACK);
mxmlDelete(tree);
tree = NULL;
fclose(fp);
return 0;
}

 

增加一个整型数据

#include <mxml.h>

void main()
{
    mxml_node_t *xml;    /* <?xml ... ?> */
    mxml_node_t *data;   /* <data> */
    mxml_node_t *node;   /* <node> */
    mxml_node_t *group;  /* <group> */

    xml = mxmlNewXML("1.0");

    data = mxmlNewElement(xml, "data");

        node = mxmlNewElement(data, "node");
        mxmlNewText(node, 0, "val1");
        ////////
        node = mxmlNewElement(data, "node");
        mxmlNewInteger(node, 5);
        //////////
        node = mxmlNewElement(data, "node");
        mxmlNewText(node, 0, "val2");
        node = mxmlNewElement(data, "node");
        mxmlNewText(node, 0, "val3");

        group = mxmlNewElement(data, "group");

            node = mxmlNewElement(group, "node");
            mxmlNewText(node, 0, "val4");
            node = mxmlNewElement(group, "node");
            mxmlNewText(node, 0, "val5");
            node = mxmlNewElement(group, "node");
            mxmlNewText(node, 0, "val6");

        node = mxmlNewElement(data, "node");
        mxmlNewText(node, 0, "val7");
        node = mxmlNewElement(data, "node");
        mxmlNewText(node, 0, "val8");
    FILE *fp;
    //mxml_node_t *tree;

    fp = fopen("filename.xml", "w");
    mxmlSaveFile(xml, fp, MXML_NO_CALLBACK);
    fclose(fp);

return ;
}

gcc -o xml xml.c -lmxl -lpthread

 

 <?xml version="1.0" encoding="utf-8"?>
-<data>
 <node>val1</node>
 <node>5</node>
 <node>val2</node>
 <node>val3</node>
-<group>
 <node>val4</node>
 <node>val5</node>
 <node>val6</node>
 </group>
 <node>val7</node>
 <node>val8</node>
 </data>

 

原创粉丝点击