从零开始写一个XML解析-01简单介绍

0. 前言

这算是从零开始的第二个系列了。上一次是从零开始写日志01从零开始写日志2。这次阅读了TinyXML的源码(Ps:我看的是1,TinyXML2大概使用过)想着就开始了这个系列的第二部。

1. TinyXML的大体逻辑

1.1 如何阅读源码

这里简单介绍下自己是怎么阅读源码的。

  1. 阅读源码时候,切忌不要一上来就看源码。一般是先使用。在已经了解相关知识(比如XML的结构)情况下去跑测试代码。
  2. 写一写自己的代码去印证你的逻辑。
  3. 然后利用阅读源码软件和gdb,从一个测试例子开始,一步一步追踪过程。

编程的本质就是状态变换。当你了解了所有的状态变换的时候,那么你就已经掌握了,剩下的就是code了。

比如说我想知道tinyXML是怎样解析字符串并建立XML树的。我就拿出一张纸,跟随gdb或者vscode将每次树的变化画出来。并且记录call stack的信息。

1.2 逻辑

这里就不讲我是怎么一步一步追踪的了。

  1. LoadFile将XML文件读取到内存中。
  2. 一个主循环:解析XML的每一行。
    1. 解析标签<>,识别标签是元素还是声明。
    2. 查看是否有属性。
    3. 解析完毕后,将对应节点插入到XML树中。
  3. 生成XML树后,就是输出,只要了解XML树的结构,输出非常easy。

接下来的文章,我将按照上面这个逻辑一步一步去写一个自己的XML出来。

下一篇

下一篇

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值