如何使用 c++ 和 Qt 管理 XML 配方
Howto manage XML recipes with c++ and Qt?
我想写一个管理食谱的软件。配方是有效的独立 xml 文件。它们包含字符串和整数值以及图像数据(以 base64 表示形式)。用户应该能够创建/打开、编辑和保存食谱。现在我担心文件管理和效率(速度和内存)。
-
我应该如何管理所有食谱?我想我可以将它们全部作为纯 xml 文件存储在一个文件夹中,或者将它们全部存储在某种库文件中。第一种方法在启动时可能更快,因为当用户单击它们时,例如在QTreeView中加载配方。第二种方法可能更有效、更快速,因为整个库将保存在内存中,尽管更改其内容可能更复杂。
-
我想使用 DOM 进行 xml 文件处理 - 或者 QXmlStreamReader/writer 会是更好的选择吗?
-
无论哪种方式,我都必须使用唯一ID来管理配方数据,例如,对于几个不同的"Cookie"配方。当使用问题 1 中的第一种方法时,我会使用基于此类 ID 的文件名。是否有任何方便的方法可以创建唯一 ID?因为当使用递增整数时,我必须跟踪哪些数字已经在使用中。
我正在使用XML文件在我的食谱程序中传输食谱。我可以选择使用 XML 导入和导出。
我正在使用数据库来存储食谱。 我不使用 XML 数据文件来存储食谱。 我将把数据管理留给数据库(我不会浪费时间编写和调试数据库)。
对于数据存储,有比XML更有效的文件格式。 此外,您可能希望创建"索引表",以便对文件进行排序和更有效的访问,而不是必须始终解析 XML 文件。
相关文章:
- Cppcheck生成xml转储文件
- 当vector是tje全局变量时,c++中vector的内存管理
- 如何维护资源管理器项目视图中当前可见的项目列表
- 如何在pugixml中获取节点的内部XML
- 如何使用tinyxml2从XML加载父实体和子实体
- 如何在GTK程序运行时禁用屏幕保护程序/电源管理/屏幕消隐
- boost xml parsingl将xml的路径作为变量发送
- 资源管理设计模式
- 使用"Task"函数指针队列定义作业管理器
- C++RapidXml-使用first_node()遍历以修改XML文件中节点的值
- 使用 Tinyxml 在 xml 中添加一个子子项
- 增强基于 XML class_id的反序列化
- 实现动态插件管理器
- Alt+Enter 在 Win32 应用中,管理大小调整和分辨率
- libcurl 和 DNS ttl 中的内部连接管理
- 在 c++ 中使用 vtd-xml 时,如何摆脱 EOFException?
- 防止在C++中选择错误文件时提升 xml 解析器崩溃
- c++ 读取 xml 文件的内容
- 如何使用 c++ 和 Qt 管理 XML 配方
- 什么容器是管理XML数据的最佳容器