c++ - 使用状态机进行 Xml 解析

标签 c++ xml parsing state-machine

<分区>

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

最佳答案

好吧,如果您“从头开始”编写自己的解析器 - 那么您可能应该做这样的三明治:

  • 纯文本字符串
  • SAX 类型的回调
  • 基于上一关构建 DOM 的代码

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

不过,如果您需要正确的模式/命名空间/xpath/等支持,还有很多工作要做。

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

关于c++ - 使用状态机进行 Xml 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14253569/

相关文章:

从字符串中删除 HTML 标记的 Python 代码

java - 如何从 Java 文本文件中解析像 "1.8400e-016"这样的数字?

c++ - 使用 '*' 输出方形 C++

C++ 将图像保存为 SVG

c++ - 从 std::tuple 解包的值的返回值优化

xml - 索引 JSON 或 XML

javascript - 当只给出年份时,如何让 Datejs 只返回年份?

C++,构造函数的原因

android - 解析XML并在TextView中显示

java - 在 Java 中从 XPath 填充 XML 文件