C语言实现xml构造解析器

C语言实现xml构造解析器,第1张

概述纯C实现xml构造解析器,所有实现只有一个.c一个.h文件组成,简单易用,易于扩展。

纯C实现xml构造解析器,所有实现只有一个.c一个.h文件组成,简单易用,易于扩展。

#include <string.h>#include <stdio.h>#include <stdlib.h>#include "sxml.h"  #define LUA_SCRIPT "function fun()\n\  int a;\n\  a = 10;\n\  return a;\n\end"  int main(){  sxml_file_info_t* info;  char* tmp;  const char* pstr;  int line=1;  char buff[128]={0};  sxml_doc_t* parser=NulL;  sxml_doc_t* doc = sxml_doc_new("a.xml","1.0","GB2312");  sxml_node_t* node = sxml_node_new("root");  sxml_attr_t* attr = sxml_attr_new("age","25");     sxml_node_t* subnode = sxml_node_new("score");  sxml_node_t* rawdata = sxml_rawdata_new(NulL,"Hello World!",strlen("Hello World!"));   sxml_node_t* rawdata2 = sxml_rawdata_new(NulL,strlen("Hello World!"));   sxml_node_t* rawdata3 = sxml_rawdata_new(NulL,strlen("Hello World!"));   sxml_node_t* rawdata4 = sxml_rawdata_new("raw","rawdata",strlen("rawdata"));   sxml_node_t* rawdata5 = sxml_rawdata_new("lua",LUA_SCRIPT,strlen(LUA_SCRIPT));   sxml_node_t* innertext = sxml_innertext_new("内部字符串");  sxml_node_t* comment = sxml_comment_new("注释");  sxml_node_t* empty = sxml_empty_new("empty");     sxml_add_attr2node(node,attr);  attr = sxml_attr_new("sex","man");  sxml_add_attr2node(node,attr);   attr = sxml_attr_new("语文","95");  sxml_add_attr2node(subnode,attr);  attr = sxml_attr_new("数学","100");    sxml_add_attr2node(subnode,attr);  attr = sxml_attr_new("英语","98");    sxml_add_attr2node(subnode,attr);     sxml_add_subnode2node(node,subnode);  sxml_add_subnode2node(node,rawdata);  sxml_add_subnode2node(node,rawdata2);  sxml_add_subnode2node(node,rawdata3);  sxml_add_subnode2node(node,rawdata4);  sxml_add_subnode2node(node,rawdata5);  sxml_add_subnode2node(node,innertext);  sxml_add_subnode2node(node,comment);  sxml_add_subnode2node(node,empty);      sxml_add_node2doc(doc,node);     //printf("%s\n",sxml_doc_print_buffered(doc,16));  tmp = sxml_doc_print(doc);  pstr = tmp;  printf("%s\n",tmp);  while((pstr = skip_line(pstr)))line++;  printf("\n\n%d\n\n",line);  //printf("\n\n%s\n\n",check_skip("<?xml version=\"1.0\" enCoding=\"GB2312\"?>","<?xml version=\\"")?"YES":"NO");  //copy_until(buff,"<?xml version=\"1.0\" enCoding=\"GB2312\"?>","\" ");  //printf("\n\n%s\n\n",buff);     //sxml_save(doc);      sxml_doc_free(doc);  doc = NulL;  free(tmp);     //printf("aaaa...................\n");     //getchar();     parser = sxml_parse("a.xml");     //tmp = sxml_doc_print(parser);//有问题,内存越界  tmp = sxml_doc_print_buffered(parser,16);  printf("%s\n",tmp);  free(tmp);  sxml_save2file(parser,"b.xml");  sxml_doc_free(parser);     return 0;}

总结

以上是内存溢出为你收集整理的C语言实现xml构造解析器全部内容,希望文章能够帮你解决C语言实现xml构造解析器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1246756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存