现在的位置: 首页 > 综合 > 正文

Linux下的xml文件的创建

2017年12月11日 ⁄ 综合 ⁄ 共 1573字 ⁄ 字号 评论关闭


创建一个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 );

抱歉!评论已关闭.