Linux下的xml文件的创建


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

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

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

l    xmlDocSetRootElementroot_node设置为doc的根结点;

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

      用函数xmlAddChild或xmlNewChild

l    xmlSaveFilexml文档存入文件;

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 );



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值