最近在arm-linux下做个项目,需要在本地记录一些数据,日志之类的东西.本来准备随便用文本文件记录下完事,突然看到了rss,于是想起了xml.自己还没有用过xml,于是打算用xml来存放这个写数据,算是练个手.
由于以前没有了解过xml编程,所以查阅了点资料.原来目前的xml解析器一般有两种解析的形式.一种是DOM模型的,一种是SAX2模型的.DOM模型是讲xml文件中的结构解析成一棵树,然后再进行各种操作;而SAX2模型是类似与事件处理的方式从头到位解析xml文件.两种方式各有优劣,不过在嵌入式设备上用DOM模型的解析器似乎太耗内存,所以一般都用SAX2的解析器.而我使用的正是linux下的expat,是符合SAX2模型的.
好像linux都有自带expat的库,不过我为了移植到arm板上还是去下了个源码包.先交叉编译通过确认可以使用了才开始学习具体的使用.在源码包中有一个帮助文件已经很详细的介绍了库中每个函数的用途和入门编程.基本上看这个就够用了.
查阅了帮助发现其实只需要3,4个函数就可以搞定大部分的工作.
XML_SetElementHandler(XML_Parser p, XML_StartElementHandler start, XML_EndElementHandler end);
由于以前没有了解过xml编程,所以查阅了点资料.原来目前的xml解析器一般有两种解析的形式.一种是DOM模型的,一种是SAX2模型的.DOM模型是讲xml文件中的结构解析成一棵树,然后再进行各种操作;而SAX2模型是类似与事件处理的方式从头到位解析xml文件.两种方式各有优劣,不过在嵌入式设备上用DOM模型的解析器似乎太耗内存,所以一般都用SAX2的解析器.而我使用的正是linux下的expat,是符合SAX2模型的.
好像linux都有自带expat的库,不过我为了移植到arm板上还是去下了个源码包.先交叉编译通过确认可以使用了才开始学习具体的使用.在源码包中有一个帮助文件已经很详细的介绍了库中每个函数的用途和入门编程.基本上看这个就够用了.
查阅了帮助发现其实只需要3,4个函数就可以搞定大部分的工作.
XML_Parser XML_ParserCreate(const XML_Char *encoding);建立一个XML的对象.
XML_SetElementHandler(XML_Parser p, XML_StartElementHandler start, XML_EndElementHandler end);
是设置处理元素头尾的函数.