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 项目中激活。
我正在使用 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 项目中激活。