在运行时从xml文件构建对象并在一次传递中初始化?

时间:2009-09-26 04:09:34

标签: c++ xml algorithm optimization parsing

我必须解析XML文件并基于此构建对象表示,现在一旦我获得所有这些数据,我就在这些数据对象的各种数据库中创建条目。我必须做第二次传递,因为第一次传递我所能做的就是在各种数据库中构建资产。在第二遍中,我获取所有数据的值并将其放入数据库中。

我觉得这可以一次性完成,但我只想看看你的意见。由于我只是一名从事专业工作的学生,有经验的人请帮助。

有想法或做过类似工作的人,请提供一些关于这个主题的说明,这样我就可以根据你的建议考虑工作的可能性并获得原型。

非常感谢您宝贵的时间,我真的很感激。

4 个答案:

答案 0 :(得分:1)

您可能有兴趣学习构建XML解析器的几种技术,例如DOMSAX。正如在SAX描述中所说的,唯一需要第二次传递的东西可能是XML验证,而不是创建树。

答案 1 :(得分:0)

除了DOM和SAX解析之外,您还可以使用XQuery从XML文件中查询数据。它快速,健壮且高效。

here is a link

您可以将Qt Xml模块用于DOM,SAX和XQuery,顺便说一下它是开源的。

另一种选择是xml - C ++数据绑定,Here是链接。你可以直接从定义创建C ++代码。这是一个优雅的解决方案。

编辑:

后者是在编译时。

答案 2 :(得分:0)

您还可以使用Apache Licensed http://xmlbeansxx.touk.pl/。它适用于Windows和Linux。

答案 3 :(得分:0)

您可以看一下名为stax的更简单的'pull'api,而不是使用sax(基于事件)。