可扩展标记语言(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语言数据读写理解1相关推荐

  1. XML语言数据读写理解2

    首先我们需要了解一下对于计算机来说,XML语言到底是怎么构成的.一般来说,XML语言的第一行会是这种形式: <?xml version="1.0" encoding=&quo ...

  2. XML语言数据读写理解16

    下面我们介入一个应用场景:也就是我们xml文件的应用:体渲染传输函数. 首先看一下效果: 这是从软件ExposureRender上截的图来显示的,左边的面板用来调节传输函数,右边来显示出效果.该程序的 ...

  3. XML语言数据读写理解13

    最后就是在tsfunGroup类里面定义函数: void writeXML(); 因为不再需要什么返回值了.源码如下: void TsfunGroup::writeXML() {writeFile.c ...

  4. XML语言数据读写理解3

    首先先把我们要读取的xml文件搞上来: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Ap ...

  5. XML语言数据读写理解10

    我们上一节讲完了读出Nodes和其他属性信息的程序,接下来我们把两个Item读到group里面. #pragma once #include <QObject> #include &quo ...

  6. XML语言数据读写理解11

    有了前10节的基础,以及我在自己的博客里发布了那个简单的QT调试窗口类,一共两个,一个是有单例的,一个不是.大家想使用的话只需要加个头文件就可以调用了. 我们现在需要把存好的内容给显示出来,看看是不是 ...

  7. XML语言数据读写理解5

    现在我们再讲一下应该怎么把数据写成XML文件. 还是以例子入手,假设我们已经有了前面章节例子的数据,这一节我们考虑怎么把这些数据按照xml文件格式写入到xml文件里面. 首先列一下我们需要写入的数据: ...

  8. XML语言与JSON

    关于XML语言与JSON 1.什么是XML 2.XML的作用 3.什么是XML文件 XML语法 1.XML文档声明 2.标记(元素/标签/节点) 3.一个XM文档只能有一个最外层标记(根标记) 4.标 ...

  9. R语言XML格式数据导入与处理

    数据解析 XML是一种可扩展标记语言,它被设计用来传输和存储数据.XML是各种应用程序之间进行数据传输的最常用的工具.它与Access,Oracle和SQL Server等数据库不同,数据库提供了更强 ...

最新文章

  1. linux文件指令 例子,Linux 命令:文件目录操作与实例
  2. pymssql 安装后只有 .disk-info_龙虎榜之防盗扣安装榜主—王兰香
  3. c16语言延时函数delay,《linux设备驱动开发详解》笔记——10中断与时钟
  4. Win XP局域网设置及其无法访问解决方案
  5. 细菌完成图+比较基因组学助力沙门氏菌毒力因子研究
  6. LVDT位移传感器的构成原理及特点
  7. ASP.NET在Web窗体上输出九九乘法表
  8. ObjectARX动态添加AutoCAD传统下拉菜单入门篇(一)
  9. 导线电感、走线电感、过孔电感计算公式
  10. java 打印对象_java中直接打印对象
  11. 怎么在html5中视频加字幕,视频转换王如何加字幕 在视频中添加文字的方法
  12. 互联网日报 | 字节跳动发布独立教育品牌“大力教育”;哈啰出行试水网约车;京东“好房京选”线下品牌落地...
  13. 纪念日或悼念人网页变灰仅需一行代码
  14. GPU和CPU计算速度
  15. 大数据之oracle:next_day函数
  16. Web前端-BOM之Navigator对象
  17. FAQ0115 AT32使用AC6编译器注意事项
  18. 高速公路上遇事故报警,微信扫这个二维码一键报警定位
  19. MD5 标准算法详解
  20. IntelliJ IDEA查看类层次结构图

热门文章

  1. 瑞吉外卖day01笔记
  2. 审计报告对企业的好处有哪些?什么是审计报告?
  3. 什么食物能减肥去脂 这些要多吃
  4. Python希尔排序
  5. SpringSecurity - 整合JWT使用 Token 认证授权
  6. CentOS系统下查看本机ip
  7. 台式电脑插耳机没有声音输出
  8. mysql如何创建视图_MySql创建视图
  9. [UWP] 模仿哔哩哔哩的一键三连
  10. Python unittest 模块