Linux下的xml文件的创建
创建一个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文件的创建相关推荐
- libxml2对XML文件的创建、解析、查找、修改
一.Libxml2介绍: Libxml2 是一个xml的c语言版的解析器,本来是为Gnome项目开发的工具,是一个基于MIT License的免费开源软件.它除了支持c语言版以外,还支持c++.PHP ...
- linux 音频文件长度,Linux下压缩音频文件
安装工具 sudo apt-get install lame 具体用法可以查看帮助 lame --help 通过更改音频文件的帧数 可以让文件变小 但是音质也会随之下降 现在比较多的mp3文件是1 ...
- linux下生成源程序控制流图,Linux下控制(统计)文件的生成的C代码实现
本文分享了Linux下控制(统计)文件的生成的C代码实现案例,供大家参考,具体内容如下 一.需求描述不定时地在Linux机器下的某目录中放入文件,文件内容中包含了用户号码.起止时间等字段,现要求编写一 ...
- linux如何解除密码,如何在Linux下解除PDF文件的密码?
[51CTO.com快译]今天,我碰巧与一位朋友共享一个受密码保护的PDF文件.我知道该PDF文件的密码,但不想透露.相反,我只想解除密码,将文件发送给朋友.于是我开始在网上找一些简单的方法,好解除P ...
- Linux下获取xml调试信息等级
Linux下获取XML调试信息等级 #ifndef _LOG_H_ #define _LOG_H_#include <stdio.h> #include <string.h> ...
- Linux下的ELF文件、链接、加载与库(含大量图文解析及例程)
Linux下的ELF文件.链接.加载与库 链接是将将各种代码和数据片段收集并组合为一个单一文件的过程,这个文件可以被加载到内存并执行.链接可以执行与编译时,也就是在源代码被翻译成机器代码时:也可以执行 ...
- 【Linux下Inotify + Rsync文件实时同步】
Linux下Inotify + Rsync文件实时同步 一.使用前言* 随着公司业务的发展,单web服务器不能满足用户的访问,需要增加多台web服务器实现均衡高可用性访问.为了统一各web服务器之间的 ...
- linux下的 lib文件的学习思考
说到这个LIB文件,先从一个小故障说起. 某日开发说,一台测试用虚机可以PING通SSH不能连了.运维同学就赶紧去查,SSHD_CONFIG配置文件都正确啊,一点错误都没有,那为什么呢? 测试下,不管 ...
- Linux 下删除大量文件效率对比
今天我们来测试一下Linux下面删除大量文件的效率. 首先建立50万个文件 $ test for i in $(seq 1 500000);do echo text >>$i.txt;do ...
最新文章
- PCL 点云 欧式聚类疑问
- 机器学习知识点(五)梯度下降法Java实现
- boost::lexicographical_compare相关的测试程序
- netbeans连接数据库_NetBeans Java EE技巧#1 –数据库中的实体类
- 用计算机怎样给文章分解,计算机试卷6分解..pdf
- 几件欣慰的事,关于.Net的培训和嵌入式开发效率
- 软件测试岗需要会什么条件,应聘软件测试岗位需要具备什么条件?
- c 语言 循环判断语句,C值循环语句(七)
- WIN10 未安装音频设备输出设备 喇叭红叉
- CMMI4级——几个直接与项目管理相关的PA(PP、PMC、IPM、RSKM、QPM、CAR)
- QTableView详细使用说明
- 企业微信开发----H5发送表单请求到企业微信内部审核
- iPhone十年越狱史
- android 图片闪光动画_Android使用LinearGradient实现两道闪光效果
- ubuntu 7z解压
- navicat mysql视图_Navicat教你如何做MySQL 视图
- BTSP——HDU2224The shortest path
- 蓝桥杯第四届C/C++ B省赛题目及题解
- 2023最新支付宝微信运动步数网页源码+附带原始接口
- 使用JMETER进行REST API测试(分步指南)