任何人都可以指导我学习构建 XML 解析器的好教程吗?我意识到大多数语言已经有库来完成这项任务,但我对了解 XML 的语法和解析器工作原理背后的理论很感兴趣。我试过寻找可以解释这一点的东西,但一直找不到任何东西。

最佳答案

我认为人们编写此类教程的需求不足;正如我所评论的,我认为一般的解析器技术没有多大帮助。 XML 解析器不是通常的 lex+yacc 方法工作得很好(词法分析器部分比解析器更有值(value))。

我知道大多数生产就绪的 XML 解析器都是野兽,但您最好开始阅读。 Java 有几个例子,xmlpull 可能是最简单的正确解析器之一。 Woodstox 和 Xerces 是最合规(“完整”)的解析器,拥有庞大的代码库,因此绝对不适合阅读。但是它们处理 XML 解析器应该处理的所有内容,因此它们也可能具有教育意义。
但要注意半支持假解析器,它们跳过检查 XML 规范要求的内容(例如,Javolution 只检查很少的内容,例如没有字符有效性检查或属性名称重复)。

另一件事显然是 XML 规范。它是 IMO 写得最好的规范之一;准确和完整,即使不是完全轻读。但考虑到它涵盖的所有内容,实际上并没有那么长。

关于xml - 您如何构建 XML 解析器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4981362/

10-12 22:11