最近做一个项目用到了XML,以前没有接触过,写个日志总结一下;
XML简介:不让带连接- -,可查wikipedia
TinyXML官方文档链接:
http://www.grinninglizard.com/tinyxmldocs/index.html
目前XML的解析主要有两大模型:SAX和DOM
SAX(Simple APIfor XML)是一个事件驱动式的API,使用者定义回调函数,当解析时,若发生时间则会调用用户的回调函数;SAX的有点事占用内存少,速度快,但是用户程序层面上会比较复杂;
DOM(DocumentObject Model),文档对象模型,是W3C组织推荐的处理可扩展置标语言的标准编程接口。其在分析时,会一次性将整个XML文档进行分析,并在内存中形成对应的树结构。这种方式对内存占用大,速度往往慢于SAX,但是可以给用户提供一个面向对象的访问接口,对用户更为友好。
目前开源的XML库有:TinyXML和CMarkup。但是CMarkup的协议不支持商业使用,tinyxml可以,因此相对来说,TinyXML被使用的更为广泛;
TinyXML是一个基于DOM模型的、非验证的轻量级c++解释器。其除了上述优点之外,还有另外一个优点就是可以跨平台,即支持Win、Linux和MAC三种系统。
如上介绍所述,TinyXML是面向对象的,我们经常用到的类有如下几个:
TiXmlDocument:文档类,创建一个这个类,就等于创建了一个XML文档;
TiXMLDeclaration:声明类,XML的第一句需要声明版本、XML文档的编码方式等,这个类就是定义XML文档声明的;尤其要注意的是编码方式,与写XML时的字符串编码方式对应,不然写完XML之后用浏览器打开,会看不到预期的结果。
TiXMLComment:注释类,XML文件在开头一般都会附带一个注释语句,大概包含日期等信息,这个类就是定义注释语句的;
TiXMLElement:元素类,它是构成XML文件的主要部分,并且支持嵌套结构,一般使用这种结构来储存属性;
TiXmlText:文本对象,它嵌套在某个元素内部;
在实际使用中,我们可以在这个基础类的层面上再封装一个类来专门针对我们的需求使用;
TinyXML库的使用教程还是非常多的,此处就不提供源代码了;
参考博客:
原文链接:https://www.f2er.com/xml/298811.html