XML文件解析C++Binding
网络上有许多XML开源的解析器,例如libxml,tinyxml等。之前研究过一段C语言写的XML解析器,基于状态机的思想。最近项目有用到XML文件就把tinyxml也研究了一下,顺便把之前那个C语言写的解析器与tinyxml的部分来了个结合,得到一个杂交产物:XMLPARSER-C++BINDING,以下简称BINDING。 这里说说BINDING运用到的一些知识点。 1.Visitor(访问者)模式,按照官方的说法:visitor模式定义一组操作,作用于某个对象结构里的各个元素。 2.清晰的TREE结构。之前写的C版本的PARSER基于builder模式,没有树的概念,操作起来还是有一定的弊端,有了DOM树可以有更加清晰的层次结构。用户看到的是一个DOCUMENT对象,该对象可以看成是树的root节点,root节点的第一个子节点一定是预处理指令节点即:包含一些XML文件的版本信息以及编码方式。需要说明的是,start_tag节点与同名的end_tag属于同级节点,start_tag允许包含其他start_tag节点,text节点,comment节点等,是一个递归的操作。如果需要得到某个start_tag所包含的内容,那么遍历终止的条件一定是得到一个同级的同名的end_tag节点。 PS:其他操作请参看源码:点击下载 The_End。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |