linux下xml安装和使用

10 篇文章 0 订阅
2 篇文章 0 订阅

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;
}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值