美文网首页
c语言libxml2生成xml文档

c语言libxml2生成xml文档

作者: 一路向后 | 来源:发表于2021-07-29 22:10 被阅读0次

1.源码实现

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <libxml/parser.h>
#include <libxml/tree.h>

int main()
{
    //定义文档和节点指针
    xmlDocPtr doc = xmlNewDoc(BAD_CAST "1.0");
    doc->encoding = BAD_CAST strdup("UTF-8");
    xmlNodePtr root = xmlNewNode(NULL, BAD_CAST"root");

    //设置根节点
    xmlDocSetRootElement(doc, root);

    //在根节点直接创建节点
    xmlNewTextChild(root, NULL, BAD_CAST"newnode1", BAD_CAST"newnode1 conetent");
    xmlNewTextChild(root, NULL, BAD_CAST"newnode2", BAD_CAST"newnode2 conetent");
    xmlNewTextChild(root, NULL, BAD_CAST"newnode3", BAD_CAST"newnode3 conetent");

    //创建一个节点, 设置其内容和属性, 然后加入根节点
    xmlNodePtr node = xmlNewNode(NULL, BAD_CAST"node2");
    xmlNodePtr content = xmlNewText(BAD_CAST"NODE CONETENT");
    xmlAddChild(root, node);
    xmlAddChild(node, content);

    //创建一个儿子和孙子节点
    node = xmlNewNode(NULL, BAD_CAST"son");
    xmlAddChild(root, node);
    xmlNodePtr grandson = xmlNewNode(NULL, BAD_CAST"grandson");
    xmlAddChild(node, grandson);

    //添加属性
    xmlNewProp(node, BAD_CAST"attribute", BAD_CAST"yes");

    //存储xml文档
    int ret = xmlSaveFile("createxml.xml", doc);
    if(ret != -1)
    {
        printf("一个xml文档被创建, 写入%d个字节\n", ret);
    }

    //释放文档节点动态申请的内存
    free((void *)(doc->encoding));
    doc->encoding = NULL;
    xmlFreeDoc(doc);

    return 0;
}

2.编译源码

$ gcc -o SaveXmlFile SaveXmlFile.c -I/usr/local/include/libxml2 -L/usr/local/lib -lxml2

3.运行结果

<?xml version="1.0" encoding="UTF-8"?>
<root><newnode1>newnode1 conetent</newnode1><newnode2>newnode2 conetent</newnode2><newnode3>newnode3 conetent</newnode3><node2>NODE CONETENT</node2><son attribute="yes"><grandson/></son></root>

相关文章

  • c语言libxml2生成xml文档

    1.源码实现 2.编译源码 3.运行结果

  • c语言libxml2解析xml

    1.xml样本文件test.xml 2.源码实现 3.编译源码 4.运行及其结果

  • Ch5 Lxml库与Xpath语法

    概要 Lxml库是基于libxml2的XML解析库的Python封装。该模块使用C语言编写,解析速度比Beauti...

  • Java眼中的XML-文件写入

    DOM 方式生成 XML 文档 通过 SAX 方式生成 XML 文档 通过 DOM4J 方式生成 XML 文档 生...

  • 5.19XML数据生成和数据解析

    在Unity引擎中如何生成本地XML数据? 第一步:引用C#的命名空间System.Xml 第二步:生成XML文档...

  • swift项目使用libxml

    1、安装 Libxml2 是一个 用c语言编写的XML 解析器和工具包,最初是为Gnome项目开发的, 后来被其他...

  • Selenium六 find_element_by_xpath(

    Xpath (XML Path Language),是W3C定义的用来在XML文档中选择节点的语言 一:从根目录/...

  • xpath 定位规则

    Xpath (XML Path Language),是W3C定义的用来在XML文档中选择节点的语言 一:从根目录/...

  • XPath定位语法总结

    XPath介绍 XPath(XML Path Language)是一门解析XML文档的语言,可在XML文档中对元素...

  • DOM 获取元素

    DOM文档对象模型,是W3C组织推荐的处理可拓展标记语言(HTML或者XML)的标准编程接口。 一、DOM树 文档...

网友评论

      本文标题:c语言libxml2生成xml文档

      本文链接:https://www.haomeiwen.com/subject/fiwfvltx.html