XML - > C解析器生成器

时间:2010-09-22 08:59:35

标签: c linux xml-parsing parser-generator

我有一个c程序,它从XML文件中获取其设置。目前我正在使用Xerces遍历数据,但将每个XML值映射到变量变得非常繁琐。

Java程序也读取了相同的XML,由于JAXB在Java中创建了所有必需的类,因此更加方便。我正在寻找可以创建“结构结构”或类似结构的类似东西。重要的是我得到c结构,而不是c ++类,因为这个代码将在GPU上运行。

我找到了“XML Booster”,我正在阅读它的文档。你知道其他选择吗?需要在linux中使用。

3 个答案:

答案 0 :(得分:1)

我使用libxml库。您仍然需要遍历XML,但是您可以获得包含元素,属性,节点和子节点的链接列表,您可以遵循这些链接列表。

link:http://xmlsoft.org/index.html

答案 1 :(得分:1)

鉴于您的XML文件具有通用模式,您可以使用Bison + Flex或简单地使用ANTLR(C运行时)来构造语法并将XML文件中的值提取到变量中。那些将使用纯C生成解析器,因此您无需担心。

答案 2 :(得分:0)

如果您有xml架构,请查看xsd codesynthesis。它为你的xsd生成了很好的c ++对象,你不需要直接处理xerces: http://www.codesynthesis.com/products/xsd/