php xml构造,C++_C语言实现xml构造解析器,纯C实现xml构造解析器,所有实 - phpStudy...
C语言实现xml构造解析器
纯C实现xml构造解析器,所有实现只有一个.c一个.h文件组成,简单易用,易于扩展。
#include
#include
#include
#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,"hello world!",strlen("hello world!"));
sxml_node_t* rawdata3 = sxml_rawdata_new(NULL,"hello world!",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;
}
相关阅读:
jQuery中queue()方法用法实例
JavaWeb中使用JavaMail实现发送邮件功能实例详解
页面内容排序插件jSort使用方法
java连接Oracle数据库的工具类
与MSSQL对比学习MYSQL的心得(二)--显示宽度
php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
win7 64位旗舰版电脑被唤醒之后显示器依然黑屏怎么办?
深入数据库通用的连接方式详解
JavaScript常用本地对象小结
Win7系统打开IE提示“堆栈满溢”的多种解决方案
Win10系统更新Realtek声卡驱动超时提示错误0x000005b4怎么办?
JavaScript利用构造函数和原型的方式模拟C#类的功能
C#读取目录下所有指定类型文件的方法
Mysql从5.6.14安全升级至mysql5.6.25的方法
php xml构造,C++_C语言实现xml构造解析器,纯C实现xml构造解析器,所有实 - phpStudy...相关推荐
- c语言printf函数中的格式控制字符串,C++_C语言格式化输入输出函数详解,一:格式输出函数printf()
1 - phpStudy...
C语言格式化输入输出函数详解 一:格式输出函数printf() 1.调用形式一般为:printf("格式化控制字符串",输出表列): 2.格式化控制字符串用于指定输出格式,它有三种 ...
- c语言怎么表示小写字母a到z,C++_C语言字符串快速压缩算法代码,通过键盘输入一串小写字母(a~z - phpStudy...
C语言字符串快速压缩算法代码 通过键盘输入一串小写字母(a~z)组成的字符串. 请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串. 压缩规则: 1.仅压缩连续重复出 ...
- php邮件代码c语言,C++_C语言实现电子邮件地址验证程序,我们最经常遇到的验证,就是 - phpStudy...
C语言实现电子邮件地址验证程序 我们最经常遇到的验证,就是电子邮件地址验证.网站上常见.各种网页脚本也都常用"正则表达式"(regular expression)对我们输入的电子邮 ...
- XML (可扩展标记语言)
XML (可扩展标记语言) 一. 标记语言 标记语言,是一种将文本(txt)以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的电脑文字编码. 当今广泛使用的标记语言是超文本标记语言(H ...
- java 解析标记语言_Java XML可扩展标记语言(eXtensible Markup Language)
一.XMl 1.1.XML简介: XML指可扩展标记语言(eXtensible Markup Language),它是一种很像HTML的标记语言.XML的设计宗旨是传输数据,焦点是数据的内容,而HTM ...
- 考试自动评分系统C语言改错,基于XML结构的C语言考试的自动评分系统.doc
基于XML结构的C语言考试的自动评分系统 摘 要:在C程序设计语言考试中为了解决定位难.一题多解和对于主观题没有统一的评价标准的情况,对考试系统中客观题和程序题的评分方法进行了研究.在比较结果的评分基 ...
- Android Studio翻译strings.xml为多国语言
前言 做完android app后需要做多国语言支持怎么办?通过百度或GOOGLE翻译一个个操作是不切实际的. 参考过AndroidLocalizationer,发现需要申请KEY,太麻烦.继续找,发 ...
- 最优生成树c语言_C语言:数据结构-构造哈夫曼树
给定n个权值的集合W={w1,w2,-.wn} 1.在W中选取两个最小的权作为兄弟结点,以它们的权值之和作为其父结点,得到一棵新树: 2.在W中删除上述已选取的权值,以它们的权值之和作为新的权值加入W ...
- Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构...
分享两篇Win 10应用开发的XML文档结构:Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构. Win 10 开发中Adapt ...
- java创建多级xml树_月光软件站 - 编程文档 - Java - 用XSL与XML实现多级树形菜单
XSL语言功能强大而奇妙.从前面的例子中,我们可以初步了解到,一个xsl文档中使用了很多类似"xsl:xxxxx"这样的标签,这些标签就是xsl语言的部分.一个xsl文档至少是由一 ...
最新文章
- OpenGL实现高度图
- mysql存储过程打不开了_请问mysql存储过程的问题,我找了几个例子一个都运行不起来,...
- BZOJ1054(搜索)
- 浏览器获取正确的scrollTop值
- VS2010 测试功能之旅:编码的UI测试(4)-通过编写测试代码的方式“.NET研究”建立UI测试(下)...
- 1.极限——例子_3
- Mybatis懒加载机制
- mysql-workbench 导入csv格式数据报错:Unhandled exception: Could not determine delimiter
- 15寸计算机显示器,苹果确认15寸RMBP支持全球首款5K显示器
- Scala中的“=”和“-”
- 【求救】如何调用Windows系统自带的“选择用户”、“选择组”的对话框?
- WinForm 去掉DataGridView最后一行的空白行,删除空白行
- 安卓/苹果手机直播声卡方案,实现一边直播一边充电功能
- 如何让电脑计算机d盘布局,创建MSR分区,解决“由于用户电脑存在一个不支持的用于UEFI固件的硬盘布局,因此系统无法安装”...
- 无需关注微信公众号破解openwrite验证
- 为什么1GB内存的苹果能完爆3GB内存的安卓机
- Python美股量化交易填坑记录——13c.Vegas隧道交易机器人(实盘记录)
- Git- Fast Forward和no fast forward
- 概率论-事件的概率--公理化定义(统计、古典、几何)
- 关于很狗的军训qwq
热门文章
- java我的世界1.6.2_我的世界1.6.2
- rds对mysql优化_RDS MySQL优化方案
- python闹钟界面程序_利用QT写一个极简单的图形化Python闹钟程序
- mysql 面试知识点笔记(三)联合索引的最左匹配原则
- OCEval-动态执行ObjectiveC的热修复方案
- Maven入门指南12:将项目发布到私服
- node.js Web实时消息后台服务器推送技术---GoEasy
- UI设计师——你是什么设计师?
- VC++ chap19 动态链接库 VC++ 孙鑫
- SSL证书配置注意事项