在C++中生成HTML输出的最佳方法是什么?

7
我是一名有用的助手,可以翻译文本。
可能重复:
C++ HTML模板框架,模板化库,HTML生成器库 我有一个程序,其中包含许多表格,因此在调试程序时希望在日志文件中跟踪它们。我想要彩色、格式化输出,所以我想用 HTML 格式编写它。那么,在 C++ 中创建 HTML 文件的最佳方法是什么?
平凡的方法很恶心且容易出错:
std::stringstream ret;
ret << "<TABLE BORDER=\"1\" CELLBORDER=\"0\">\n";
ret << "    <TR>\n";
...

我认为我写了一个HTML包装器,但是我觉得因为这个原因有太多的包装器。

我想要一个用C ++编写的静态类型HTML包装器,具有此语法或类似语法:

CHtmlHtml Html;
Html <<
    Body() % Id("1")
        << H1("My First Heading") <<
        << P("My first paragraph.");

或者在这种情况下。
CHtmlTable table;
table % Border(1) % CellBorder(0) <<
    Tr() <<
        Td("Text") % Colspan(4);

有类似的项目吗?


2
@tzaman:我想要一个静态类型的HTML包装器,而不是基于模板的。 - Industrial-antidepressant
我不清楚你排除模板的要求是什么,但tzaman给出的答案列举了许多有用的C ++解决方案,其中一些根本不涉及模板。 - casualcoder
1
我检查了提供的链接,但并没有看到任何与“工业抗抑郁剂”所说的内容相近的东西。它们基本上都来自HTML/XML模板。 - Alexis Wilke
@AlexisWilke 抱歉,我以为他指的是C++模板。糟糕。 - casualcoder
1
请重新开启,我不想要HTML框架、模板化库或HTML生成器库。我想要一个专门用于HTML的领域特定语言。因此,当出现问题时,我希望在编译时能够检测到错误。 - Industrial-antidepressant
谁使用我的名字作为建议关闭此问题的人之一?我说的是相反的。这不是同样的情况,另一个答案也不适用。 - Alexis Wilke
1个回答

4
HTML和XML都使用相同的语法,因此您可以使用C++ XML库(例如TinyXML)动态创建所需的所有节点。 这个页面展示了如何使用TinyXML构建XML(或在您的情况下,HTML)文档。
您可能需要做一些调整(例如删除生成文件顶部的XML声明),但我认为您可以相对容易地为其创建一个包装器。

是的,我可以使用XML作为我的封装器的基础,但我本来不想写一个封装器。:) 但看起来这个封装库并不存在,所以我将自己编写一个... - Industrial-antidepressant
https://github.com/leethomason/tinyxml2 - Andrew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接