Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the best way to produce HTML output in C++? [duplicate]

Tags:

c++

html

wrapper

Possible Duplicate:
C++ HTML template framework, templatizing library, HTML generator library

I have a program, that contains many tables, so I want to track them in log files when I debug the program. I want colored, formatted output so I thought I wrote it in HTML format. So what is the best way to create HTML files in C++?

The trivial way is so disgusting and error prone:

std::stringstream ret;
ret << "<TABLE BORDER=\"1\" CELLBORDER=\"0\">\n";
ret << "    <TR>\n";
...

So I thought I wrote a HTML wrapper but I think there are so many for this reason.

I want a statically typed HTML wrapper in C++ with this syntax or similar:

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

or in this case

CHtmlTable table;
table % Border(1) % CellBorder(0) <<
    Tr() <<
        Td("Text") % Colspan(4);

Is there any similar project?

like image 680
Industrial-antidepressant Avatar asked Jan 02 '12 00:01

Industrial-antidepressant


1 Answers

HTML and XML both use the same syntax, so you could just use a C++ XML library (such as TinyXML) to dynamically create all the nodes you need.

This page shows how to use TinyXML to build XML (or in your case, HTML) documents.

You may need to do some fiddling (such as removing the XML declaration at the top of the generated file), but I think you could create a wrapper for it somewhat easily.

like image 50
berserkguard Avatar answered Nov 14 '22 08:11

berserkguard