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