minixml开源包的使用

来源:互联网 发布:tk域名 编辑:程序博客网 时间:2024/05/16 10:13

XML在现在的发展中越显得越重要,目前发现应用在动态页面配置、数据包传输等用处还是相当有作用的。自己编写XML解析器比较耗时,还好现在已经有了做的相当完善的minixml,可以拿过来用了。

google上搜索minixml,目前能够下载到的最新版本是2.7

下载完成以后,解压、安装minixml,操作命令如下

tar -zxf mxml-2.7.tar.gz

解压完成后,进入解压出来的文件夹mxml-2.7根据里面的README进行配置,步骤简单的如下所示,默认安装路径是在/usr/local目录下面

./configure 

make

make install

执行完成以后,可以发现/usr/local/lib目录下面多了mxml的静态和动态的库文件了,如下所示



根据手册,编写测试文档,功能是创建一个xml文档,代码如下

#include <stdio.h>#include <mxml.h>int main(int argc, char *argv[]){FILE *fp;mxml_node_t *xml;    /* <?xml ... ?> */    mxml_node_t *data;   /* <data> */    mxml_node_t *node;   /* <node> */    mxml_node_t *group;  /* <group> */fp = fopen("new.xml", "w");    xml = mxmlNewXML("1.0");    data = mxmlNewElement(xml, "data");        node = mxmlNewElement(data, "node");        mxmlNewText(node, 0, "val1");        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 y");            node = mxmlNewElement(group, "node");            mxmlNewText(node, 0, "val5 n");            node = mxmlNewElement(group, "node");            mxmlNewText(node, 0, "val6 c");        node = mxmlNewElement(data, "node");        mxmlNewText(node, 0, "val7");        node = mxmlNewElement(data, "node");        mxmlNewText(node, 0, "val8");mxmlSetWrapMargin(10);mxmlSaveFile(xml, fp, MXML_NO_CALLBACK);    fclose(fp);}

编译代码,然后执行,发现用Notepad打开生成的XML文旦,全部都在一行记录里面,但是用网页打开则能够正常显示,如下所示


编译过程的错误:


此错误添加上线程库(lpthread)既可以解决


运行过程的错误


错误原因:运行NewXML时候没有找到libmxml.so.1动态库

解决办法:

方法1:将libmxml.so.1拷贝到/lib目录下面即可

方法2:首先、需要清楚的是我们把库文件放在系统默认的动态库目录下面/usr/local/lib目录下面,但是运行时却没有找到?此时需要更新动态库,使用如下命令

sudo ldconfig -v

推荐使用:方法2