我喜欢用C语言编写服务器端程序,但需要与一些XML进行交互。
我需要编写一些函数,给定一个C结构体或嵌套结构体,以及另一个描述C结构体元素(或嵌套结构体)的结构体(或嵌套结构体),将其作为XML输出。还需要另一个函数读取XML,验证它是否与C结构体的描述匹配,并填充C结构体。
我非常确定这已经做过很多次了,但是有关XML的其他信息太多了,我无法组成一个不返回大量无关信息的Google查询。
我不需要一个库,只需要几百行C代码来解析XML。
我喜欢用C语言编写服务器端程序,但需要与一些XML进行交互。
我需要编写一些函数,给定一个C结构体或嵌套结构体,以及另一个描述C结构体元素(或嵌套结构体)的结构体(或嵌套结构体),将其作为XML输出。还需要另一个函数读取XML,验证它是否与C结构体的描述匹配,并填充C结构体。
我非常确定这已经做过很多次了,但是有关XML的其他信息太多了,我无法组成一个不返回大量无关信息的Google查询。
我不需要一个库,只需要几百行C代码来解析XML。
如果您没有找到任何预先制作的库或代码,可以编写一个类似于通常的toString()函数的toXML()函数。然后再编写一个toStruct(char*)函数,将XML反序列化回结构体。
struct point {int x; int y;}
这样的东西非常有效,可以写成<point x ='5' y ='17'>
。这适用于没有指针和可以用(非常)纯文本编写的数据类型的POD。另一个标记可用于收集数组。当您需要表示任意字符串数据、树以外的结构、指针等时,情况变得更加有趣……也不要忘记安全问题。安全序列化很难。 - RBerteig