带有 HTML 报告生成器的 c++ XML 解析器的体系结构

Architecture for a c++ XML-parser with a HTML-reportgenerator

本文关键字:XML 体系结构 c++ HTML 带有 报告      更新时间:2023-10-16

我想要一个解析XML文件的程序,用我需要的标签构建一个结构,最后使用HTML模板打印一个HTML报告,关键词被XML文件中的数据替换。由于我(还没有)真正进入OO编程,我希望获得一些有关如何构建此类程序的提示和建议。我想两节课应该足够了。分析器类和数据类。第一个遍历XML文件并将我要存储的每个标签报告给一个数据对象,该对象按分层顺序存储所有标签。之后,我想调用一个打印函数,它将所有内容打印为 HTML 报告。

  1. 我不确定如何将标签报告给数据对象
  2. 我可以将标签存储在一个存储结构树的对象中,还是将每个标签存储在单独的对象中会更好?

任何帮助将不胜感激!

你在问题中没有提到Qt,但当你把它作为一个标签添加时:有QtXML,它将提供一种解析和生成XML文档的方法,并且也适用于HTML输出。XML 通常通过 DOM 或 SAX 处理。使用 DOM,文档被解析为树结构,您将在树上作为中心数据元素工作。使用 SAX,可以在分析 XML 输入时使用为不同 XML 元素调用的回调函数。

互联网上有很多关于DOM和SAX的信息,维基百科是一个很好的起点。网上也有很多关于QtXML的文档。

使用 DOM 和/或 SAX 将为解决问题提供一个很好的架构。

我解决了我的问题,想分享我的架构。我做了一个类解析器来解析元素并将标签报告给一个 HTMLHandler 类,该类具有标头、内容和子内容等子类。其中存储数据,并且都有 write()- 方法来打印自己。

对我来说效果很好,并且退出了简单的:)