Qt读取XML结构
Posted
技术标签:
【中文标题】Qt读取XML结构【英文标题】:Qt reading XML structure 【发布时间】:2016-04-12 14:36:18 【问题描述】:我正在使用 Qt5.5,我想将一个 XML 文件读入内存,维护节点和关系的结构和属性。
到目前为止,我一直在使用 QXmlStreamReader,但这并没有起到多大作用,而且我看不到任何明显的方式来建立节点之间的关系。
我最终想要的是将 XML 读入一个链表,其中根节点与根 xml 节点相同,其他节点是它的子节点。
经过一番搜索,我找到了 QDomDocument 和 QDomElement,但是为了使用它们,必须修改 '.pro' 文件,并且应该将 xml 附加到 QT 行。
【问题讨论】:
你考虑过使用QDomDocument
吗?
现在就看这个.... QDomElement 和 QDomDocument 在 Qt5.5 中可用吗?
通过谷歌搜索“qt5 qdomdocument”很容易找到...
当然,如果您知道它存在以及使用什么关键字。
我的意思是,回答您的评论问题,如果它们存在于 Qt5 中。
【参考方案1】:
你想要的是一个 DOM 解析器。它提供了 XML 数据的树状模型(文档对象模型),您可以遍历、修改并存储到文件中。
QXmlStreamReader
提供了一个非常简单的接口,类似于 SAX 解析器。如果您只需要从 XML 格式的文本中提取数据,这可能就足够了。 (对于编写简单的 XML,还有一个QXmlStreamWriter
)。
这两个类都包含在 Qt Core 模块中
如果您需要更强大的 XML 解析器,Qt XML 模块提供了一个真正的 SAX 解析器 (QXmlSimpleReader
) 和一个 DOM 解析器 (QDomDocument
)。您可以通过在 pro-file 中添加qt += xml
来激活 qmake 项目。
【讨论】:
以上是关于Qt读取XML结构的主要内容,如果未能解决你的问题,请参考以下文章