Qt阅读XML结构

Qt reading XML structure

我正在使用 Qt5.5,我想将 XML 文件读入内存以维护节点和关系的结构和属性。

到目前为止,我一直在使用 QXmlStreamReader,但这并没有真正起到多大作用,而且我看不到任何明显的方法来建立节点之间的关系。

我最终想要的是将XML读入一个链表,其中根节点与根xml节点相同,其他节点是它的子节点。

经过一番搜索,我找到了 QDomDocument 和 QDomElement,但是为了使用它们,必须修改 '.pro' 文件并且 xml 应该附加到 QT 行。

您想要的是 DOM 解析器。它提供了 XML 数据的树状模型(文档对象模型),您可以遍历、修改和存储到文件。

QXmlStreamReader 提供了一个类似于 SAX 解析器的非常简单的接口。如果您只需要从 XML 格式的文本中提取数据,这可能就足够了。 (为了写简单的XML,还有一个QXmlStreamWriter)。 这两个类包含在Qt Core模块中

如果您需要更强大的 XML 解析器,Qt XML 模块提供了一个真正的 SAX 解析器 (QXmlSimpleReader) 和一个 DOM 解析器 (QDomDocument).您可以通过在 pro 文件中添加 qt += xml 来在 qmake 项目中激活。