再谈Parser

51 篇文章 1 订阅
15 篇文章 0 订阅

Parser(decoder, analyzer, deserializer)的作用就是把一个字符串(一维,流)转化成一个数据结构、对象(任何数据结构或者对象,都是树或者图结构),相反的过程叫编码、序列化。

Parser的写法大概有2种方式

1)递归下降(recursive descend),经典例子是有序链表转换成排序二叉树

2) meta character驱动的状态机。状态就是一些表明当前状态的变量和最终要parse出的data structure, 一般还要用栈维护对象层次


xml parser, json parser,key value pair parser, 都可以用这两方法写,其中所谓事件都是由meta character触发,比如分隔符(item 分隔符“,”,key - value  分隔符“:”,单词分隔符空格,行分隔符 \n等), [和{触发的 新容器事件,}]触发的容器结束事件。

对于xml,主要就是<>触发的 startElement,endElement,characters等SAX事件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值