创建一个xml文档流程如下:

l    用xmlNewDoc函数创建一个文档指针doc;

l    用xmlNewNode函数创建一个节点指针root_node;

l    用xmlDocSetRootElement将root_node设置为doc的根结点;

l    给root_node添加一系列的子节点,并设置子节点的内容和属性;

用函数xmlAddChild或xmlNewChild

l    用xmlSaveFile将xml文档存入文件;

l    用xmlFreeDoc函数关闭文档指针,并清除本文档中所有节点动态申请的内存

#include </usr/include/libxml2/libxml/parser.h>
#include </usr/include/libxml2/libxml/tree.h>

int main(int argc , char **argv)
{
      // 创建一个指向文档的指针节点
  xmlDocPtr     pdoc = NULL;
     //创建并初始化xml文件内的节点,本程序是两层
  xmlNodePtr    proot_node = NULL ,pnode = NULL;

//对文档指针初始化
  pdoc = xmlNewDoc( BAD_CAST "1.0");

//对根节点申请创建
  proot_node  = xmlNewNode(NULL , BAD_CAST "vm");
     //设置根节点进行属性
  xmlNewProp(proot_node , NULL , NULL);

//使根结点和文档结点进行关联,定义该文档的根结点
  xmlDocSetRootElement(pdoc , proot_node);

//对节点pnode进行申请创建
  pnode = xmlNewNode( NULL , BAD_CAST "resp" );
     //设置根节点属性
  xmlNewProp(pnode , BAD_CAST"value" , BAD_CAST"0");

//  创造root节点的子节点,产生层次结构,定义谁是谁的子结点
  xmlAddChild(proot_node,pnode);

//保存文档
  xmlSaveFormatFileEnc(argc > 1 ? argv[1] : "-", pdoc, "UTF-8", 1);//显示行格式化输出
  xmlSaveFile("CreatedXml.xml",pdoc);                               //常用输出方式

//释放文档指针
  xmlFreeDoc(pdoc);

xmlCleanupParser();

xmlMemoryDump();      //debug memory for regression tests

return(0);
}
//如果需要对某节点添加内容,则需要进行一下操作.
//  xmlNodePtr content = xmlNewText(BAD_CAST"NODE CONTENT");
//  xmlAddChild(node,content);
//如果采取变量拼接方法的话则进行一下操作
//  value=flag;
//char *str;
//str=(char *)malloc(100);
//sprintf(str,"%d",value);
//xmlNewProp(node,BAD_CAST"value",BAD_CAST str);此时对某节点属性和值进行采取变量方式设置
//使用sprintf不要忽略头文件的包含#include<stdio.h>
//如果需要添加子结点,还可以采取函数

//xmlNodePtr p1=xmlNewChild        (proot_node, NULL,    BAD_CAST "resp" , NULL );

Linux下的xml文件的创建相关推荐

  1. libxml2对XML文件的创建、解析、查找、修改

    一.Libxml2介绍: Libxml2 是一个xml的c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MIT License的免费开源软件.它除了支持c语言版以外,还支持c++.PHP ...

  2. linux 音频文件长度,Linux下压缩音频文件

    安装工具 sudo apt-get install lame 具体用法可以查看帮助  lame --help 通过更改音频文件的帧数 可以让文件变小  但是音质也会随之下降 现在比较多的mp3文件是1 ...

  3. linux下生成源程序控制流图,Linux下控制(统计)文件的生成的C代码实现

    本文分享了Linux下控制(统计)文件的生成的C代码实现案例,供大家参考,具体内容如下 一.需求描述不定时地在Linux机器下的某目录中放入文件,文件内容中包含了用户号码.起止时间等字段,现要求编写一 ...

  4. linux如何解除密码,如何在Linux下解除PDF文件的密码?

    [51CTO.com快译]今天,我碰巧与一位朋友共享一个受密码保护的PDF文件.我知道该PDF文件的密码,但不想透露.相反,我只想解除密码,将文件发送给朋友.于是我开始在网上找一些简单的方法,好解除P ...

  5. Linux下获取xml调试信息等级

    Linux下获取XML调试信息等级 #ifndef _LOG_H_ #define _LOG_H_#include <stdio.h> #include <string.h> ...

  6. Linux下的ELF文件、链接、加载与库(含大量图文解析及例程)

    Linux下的ELF文件.链接.加载与库 链接是将将各种代码和数据片段收集并组合为一个单一文件的过程,这个文件可以被加载到内存并执行.链接可以执行与编译时,也就是在源代码被翻译成机器代码时:也可以执行 ...

  7. 【Linux下Inotify + Rsync文件实时同步】

    Linux下Inotify + Rsync文件实时同步 一.使用前言* 随着公司业务的发展,单web服务器不能满足用户的访问,需要增加多台web服务器实现均衡高可用性访问.为了统一各web服务器之间的 ...

  8. linux下的 lib文件的学习思考

    说到这个LIB文件,先从一个小故障说起. 某日开发说,一台测试用虚机可以PING通SSH不能连了.运维同学就赶紧去查,SSHD_CONFIG配置文件都正确啊,一点错误都没有,那为什么呢? 测试下,不管 ...

  9. Linux 下删除大量文件效率对比

    今天我们来测试一下Linux下面删除大量文件的效率. 首先建立50万个文件 $ test for i in $(seq 1 500000);do echo text >>$i.txt;do ...

最新文章

  1. PCL 点云 欧式聚类疑问
  2. 机器学习知识点(五)梯度下降法Java实现
  3. boost::lexicographical_compare相关的测试程序
  4. netbeans连接数据库_NetBeans Java EE技巧#1 –数据库中的实体类
  5. 用计算机怎样给文章分解,计算机试卷6分解..pdf
  6. 几件欣慰的事,关于.Net的培训和嵌入式开发效率
  7. 软件测试岗需要会什么条件,应聘软件测试岗位需要具备什么条件?
  8. c 语言 循环判断语句,C值循环语句(七)
  9. WIN10 未安装音频设备输出设备 喇叭红叉
  10. CMMI4级——几个直接与项目管理相关的PA(PP、PMC、IPM、RSKM、QPM、CAR)
  11. QTableView详细使用说明
  12. 企业微信开发----H5发送表单请求到企业微信内部审核
  13. iPhone十年越狱史
  14. android 图片闪光动画_Android使用LinearGradient实现两道闪光效果
  15. ubuntu 7z解压
  16. navicat mysql视图_Navicat教你如何做MySQL 视图
  17. BTSP——HDU2224The shortest path
  18. 蓝桥杯第四届C/C++ B省赛题目及题解
  19. 2023最新支付宝微信运动步数网页源码+附带原始接口
  20. 使用JMETER进行REST API测试(分步指南)

热门文章

  1. wince中的BSP工程的相关文件介绍
  2. 使用Wireshark进行SIP包解析
  3. uC/GUI 在Cortex-M3 内核上的移植
  4. 异或运算^和他的一个常用作用
  5. char * 转LPCTSTR若干方法
  6. matlab的灰色关联,五种灰色关联度分析matlab代码
  7. js将百度坐标转为wgs84
  8. 【转】C#开发PACS医学影像处理系统(三):界面布局之工具栏
  9. 【转】算法导论学习笔记 一 分治算法
  10. Magento 2开发教程 - 创建新模块