c语言解析xml

C语言解析xml

c语言解析xml

根据导师的要求,要用C语言解析一个xml文件,用于对升级文件进行合法性判断,进而对软件进行升级。

上网搜了一些关于这方面的资料,发现有一些是用C++或Java等语言写的,当然也可以直接下载开源的'代码,也可以下载库文件直接使用。但考虑到对xml文件解析其实用不到那么多功能,也考虑到硬件方面无法支持这么大的库文件。因此,决定自己写一段代码用于解析简单的xml文件。

看了一些源代码,发现他们主要使用树型结构来实现对xml 的解析,由于能力有限吧,感觉很麻烦,可能占用内存也会很大,所以我苦苦思索了好久,决定使用递归的方法解析xml文件,每当解析出相应的数值时,可以立即对这些数值进行判定是否合法,如果合法的话,可以继续解析;如果不合法的话,就可以直接跳出。

对这个xml文件,我做了很严格的定义:

<主标签 属性值1>

<子标签> 属性值2

<子标签>

<下级子标签>属性值3

在这里,可以在标签间的任何地方进行注释,但禁止在标签内部进行注释;标签可以有多层嵌套,但必须保证标签有结束标志,嵌套必须合法。

属性值的规定方面,可以正确的解析属性值2和属性值3,但不会解析属性值1,属性值1可以起到注释的作用。

下面贴出一些主要的代码:

首先读取xml文件: