当前位置: 首页 > news >正文

XML语言数据读写理解1

    可扩展标记语言(XML)是一种非常简单的数据存储读写语言,与其他数据库语言相比,这是它最大的优点。

    废话少说,接下来我们就写一下XML的语言格式:如何从0开始写一个XML数据文件,并用C++语言将里面的数据读出来,并在QT界面上进行显示。

    首先先找了一个简单的xml文件,这个xml文件是用来存渲染需求的数据的:

<!DOCTYPE Appearance>
<Presets>
<Preset Name="manix_small">
<Nodes>
<Node>
<NormalizedIntensity Value="0"/>
<Opacity Value="0"/>
<Diffuse G="160" R="160" B="164"/>
<Specular G="10" R="10" B="10"/>
<Emission G="0" R="0" B="0"/>
<Roughness Value="100"/>
</Node>
<Node>
<NormalizedIntensity Value="0.23597"/>
<Opacity Value="0"/>
<Diffuse G="0" R="45" B="0"/>
<Specular G="170" R="255" B="127"/>
<Emission G="0" R="0" B="0"/>
<Roughness Value="0"/>
</Node>
<Node>
<NormalizedIntensity Value="0.288538"/>
<Opacity Value="0.0179028"/>
<Diffuse G="7" R="44" B="7"/>
<Specular G="50" R="50" B="50"/>
<Emission G="0" R="0" B="0"/>
<Roughness Value="0.5868"/>
</Node>
<Node>
<NormalizedIntensity Value="0.288578"/>
<Opacity Value="0.563502"/>
<Diffuse G="0" R="67" B="0"/>
<Specular G="7" R="11" B="5"/>
<Emission G="0" R="0" B="0"/>
<Roughness Value="0.0744"/>
</Node>
<Node>
<NormalizedIntensity Value="0.35417"/>
<Opacity Value="1"/>
<Diffuse G="72" R="86" B="41"/>
<Specular G="2" R="4" B="2"/>
<Emission G="0" R="0" B="0"/>
<Roughness Value="0.1322"/>
</Node>
<Node>
<NormalizedIntensity Value="1"/>
<Opacity Value="1"/>
<Diffuse G="160" R="160" B="164"/>
<Specular G="10" R="10" B="10"/>
<Emission G="0" R="0" B="0"/>
<Roughness Value="100"/>
</Node>
</Nodes>
<DensityScale Value="100"/>
<ShadingType Value="2"/>
<GradientFactor Value="3"/>
</Preset>
</Presets>

    我们用表格excel来打开这个文件,可以得到:

    

    很容易就能看出来里面的对照关系,只是在显示中xml文件里面设置的标签例如Emission,Specular这些都没有了。而在程序中我们需要去记录这些信息,比如Emission.R = 160, Specular.G = 120 。所以我们必须要能用程序把我们设计的XML文件进行读写。

    使用浏览器打开xml文件:

    

    我们可以看到排列的非常有序,在Nodes里有许多子Node,在每个<Preset>里面除了一个Nodes以外,还有三个数据表示:DensityScale , ShadingType , GradientFactor , 每个节点都需要被起始和结束标志给包含:即例如<Node>和<\Node>以及<Preset>和<\Preset>。

    

那么下一节开始,就从无到有,写一个自己定义的XML文件的解析器,并把里面所有的数据都保存在需要的变量中。

 

相关文章:

  • XML语言数据读写理解2
  • XML语言数据读写理解3
  • XML语言数据读写理解4
  • XML语言数据读写理解5
  • XML语言数据读写理解6
  • XML语言数据读写理解7
  • XML语言数据读写理解8
  • XML语言数据读写理解9
  • XML语言数据读写理解10
  • 简易的QT输出调试器
  • 简易的QT输出调试器2
  • XML语言数据读写理解11
  • XML语言数据读写理解12
  • XML语言数据读写理解13
  • XML语言数据读写理解14
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • Android 架构优化~MVP 架构改造
  • EOS是什么
  • GitUp, 你不可错过的秀外慧中的git工具
  • Golang-长连接-状态推送
  • JavaScript 基础知识 - 入门篇(一)
  • maya建模与骨骼动画快速实现人工鱼
  • SQLServer之创建显式事务
  • windows下如何用phpstorm同步测试服务器
  • 深入浅出Node.js
  • 我的面试准备过程--容器(更新中)
  • 小程序开发中的那些坑
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 因为阿里,他们成了“杭漂”
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • (1)SpringCloud 整合Python
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (二十四)Flask之flask-session组件
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (十)T检验-第一部分
  • (转)ObjectiveC 深浅拷贝学习
  • (轉貼) UML中文FAQ (OO) (UML)
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET Core 中插件式开发实现
  • .NET MVC之AOP
  • .Net Web窗口页属性
  • .net 受管制代码
  • .Net 应用中使用dot trace进行性能诊断
  • .NET开源快速、强大、免费的电子表格组件
  • [20150629]简单的加密连接.txt
  • [2016.7 day.5] T2
  • [AIGC] Java 和 Kotlin 的区别
  • [C++基础]-入门知识
  • [ccc3.0][数字钥匙] UWB配置和使用(二)
  • [Docker]六.Docker自动部署nodejs以及golang项目
  • [EFI]Acer Aspire A515-54g电脑 Hackintosh 黑苹果efi引导文件
  • [HDU5685]Problem A
  • [hive小技巧]同一份数据多种处理