Chinaunix首页 | 论坛 | 博客
  • 博客访问: 122010
  • 博文数量: 20
  • 博客积分: 1627
  • 博客等级: 上尉
  • 技术积分: 383
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-25 16:11
文章分类

全部博文(20)

文章存档

2012年(5)

2011年(2)

2010年(12)

2009年(1)

我的朋友

分类: C/C++

2010-07-29 17:34:36

minixml 使用记录

解压mxml-2.6.tar.gz编译,然后得到libmxml.a mxml.h
结构如下:
a  a.c  a.o  libmxml.a  makefile  mxml-2.6    mxml.h  mymemory.log  test.xml

a.c 源码

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <mcheck.h>
#include "mxml.h"

void find_node()
{
        FILE *fp;
        mxml_node_t *tree = NULL;

        fp = fopen("test.xml", "r");
        tree = mxmlLoadFile(NULL, fp, NULL);
        fclose(fp);

        mxml_node_t *node;
        const char *name, *prog;

        /* 使用中文 */
        for (node = mxmlFindElement(tree, tree, "node", NULL, NULL, MXML_DESCEND);
                        node != NULL;
                        node = mxmlFindElement(node, tree, "node", NULL, NULL, MXML_DESCEND))
        {
                name = mxmlElementGetAttr(node, "name");
                prog = mxmlElementGetAttr(node, "prog");

                //printf("name=%s, prog=%s \n", name, prog);

        }

        mxmlDelete(tree);
}

int main()
{


        int i=10000;

        //setenv("MALLOC_TRACE", "mymemory.log", 1);

        //mtrace();


        while(i--)
                find_node();
        //muntrace();


        return 0;
}


makefile

CC=gcc
CFLAGS=-g -Wall

LIBS=a.o libmxml.a -lpthread

all: a

a: $(LIBS)
        $(CC) -o $@ $(LIBS)

clean:
        rm -f *.o a


test.xml

<?xml version="1.0"?>
<data>
        <node name="a1" prog="1.sh"></node>
        <node name="a2" prog="2.sh"></node>
        <node name="a3" prog="3.sh"></node>
        <node name="a4" prog="4.sh"></node>
        <node name="a5" prog="5.sh"></node>
        <node name="a6" prog="6.sh"></node>
        <node name="a7" prog="7.sh"></node>
        <node name="a8" prog="8.sh"></node>
</data>


阅读(2295) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~