使用状态机进行Xml解析

Xml Parsing using state machines

本文关键字:Xml 解析 状态机      更新时间:2023-10-16

在状态机中实现xml解析是一种好做法吗?如果有,我们要处理的主要国家是什么?

好吧,如果您正在"从头开始"编写自己的解析器—那么您可能应该制作这样的三明治:

  • 纯文本字符串
  • SAX-type回调
  • 代码,构建DOM,基于前一个级别

所以1级可以(也应该)在FSM中完成,我会用一组状态来完成,如Initial, InTagName, InAttrName, InAttrValue, InCDATA等。不会有太多,只有几个页面切换语句。

但是,如果您需要正确的模式/名称空间/xpath等支持,仍然有大量的工作要做。

那么为什么不采用现有的解决方案呢?