C语言解析.XML文件
发布时间:2020-12-16 06:03:25 所属栏目:百科 来源:网络整理
导读:最近手头上有个活在忙,中间很重要的一部分就是用C语言将.XML文件中想要的key和value读出来,与之前已有的值进行比较。 核心的.XML文件的格式如下: groupkeycurDefaultzzz/curDefaulthistoryvaluexxx/valuevalueyyy/value/history/key/group 而我的思路是这
最近手头上有个活在忙,中间很重要的一部分就是用C语言将.XML文件中想要的key和value读出来,与之前已有的值进行比较。
核心的.XML文件的格式如下: <group> <key> <curDefault>zzz</curDefault> <history> <value>xxx</value> <value>yyy</value> </history> </key> </group> 而我的思路是这样的: 1.将整个文件读到一个buf中; 2.去掉不需要的头部分;(<? xml ?>) 3.采用下降递归的方法,获取到每一个人tag 和 content; 其中用到的结构体有: typedef struct XML_SEGMENT{ char *str; int len; }XML_SEGMENT; typedef enum{ XML_ELEMENT_CONTENT=1,XML_TEXT_CONTENT,XML_DECLARE_CONTENT }xml_content_t; typedef struct{ XML_ATTR_PAIR *array; int cnt; }XML_ATTRIBUTE; </pre><pre name="code" class="cpp"> typedef struct XML_LIST{ XML_SEGMENT tagname; XML_ATTRIBUTE attr; XML_SEGMENT content; xml_content_t type; XML_SEGMENT realm; int depth; struct XML_LIST *parent; struct XML_LIST *first_child; struct XML_LIST *prev_sibling; struct XML_LIST *next_sibling; }XML_LIST; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |