xml安装和使用
需要文件:mxml-2.7.tar usemxml.c test.xml
步骤:
1.mxml-2.7.tar拷到共享文件夹
2.linux进入共享文件夹
3.#sudo su
4.#cp mxml-2.7.tar.gz /home/
5.#tar -xvf mxml-2.7.tar.gz
6.#cd mxml-2.7
7.#./configure
8.make install
9.#cp /usr/local/lib/libmxml.* /lib
10.进入共享文件夹运行
11.#gcc usemxml.c -lmxml -lpthread
12../a.out
设计
//实例
<?xml version="1.0" encoding="utf-8"?>
<data>
<node name="test" prog="1.sh"></node>
<node name="中文测试" 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>
//代码:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "mxml.h"
//寻找节点
void FindNode(void)
{
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);
}
//创建节点
void CreatXml(void)
{
FILE *fp;
mxml_node_t *tree = NULL;
mxml_node_t *pointer = NULL;
mxml_node_t *node;
fp = fopen("new.xml", "w");
tree = mxmlNewXML("1.0");
pointer = mxmlNewElement(tree, "data");
node = mxmlNewElement(pointer, "node");
mxmlElementSetAttr(node, "name", "test1"); //基于一个节点新增节点
mxmlElementSetAttr(node, "prog", "aaa.sh");//设置节点元素和元素名
mxmlSaveFile(tree, fp, MXML_NO_CALLBACK);
fclose(fp);
mxmlDelete(tree);
}
int main()
{
FindNode();
CreatXml();
return 0;
}