/XmlCore

Xml 解析

Primary LanguageC++

XmlCore

XmlCore是一个用C++编写的Xml解析器,算法参考了《编译原理》(龙书),使用了LL(1)语法制导翻译,可以很方便的扩展为对html的解析器,对于网页抽取和小的html浏览器是不错地选择。

XmlCore现在的算法是边解析边创建了dom树。对于大的xml文件场景,可以很方便的修改为基于事件的解析方式。

XmlCore是基于acsii编码进行解析的。但是对于GBK,GB2312,GB18030等编码从原理上来说也是支持的,对UTF-8则有问题。

文件介绍: XmlCore.h 语法解析 XmlScanner.h 词法解析器 XmlUtil.h 一些xml工具函数 test目录下是测试程序和测试文件,程序经过valgrind 内存测试。

词法解析: dec dec_props null dec_prop dec_props dec_prop id="chars" comnent | tag_begin tag_value chars cdata tag_end id chars tag_prop chars

语法解析:
doc null root dec root root null tag

tag {tag_begin.id = tag_end.id} tag_begin null tagend tag_begin tag tagend tag_begin cdata tag_end
tag_begin val tagend tag_begin tag_end

编译及运行: ./build.sh cd test ./test example.xml

作者:德才 email:jindc@163.com