2012-01-02 47 views
6

可能性の重複:
C++ HTML template framework, templatizing library, HTML generator libraryC++でHTML出力を生成する最良の方法は何ですか?

私は多くのテーブルが含まれているプログラムを、持っているので、私は、私はプログラムをデバッグする場合、ログファイルにそれらを追跡します。色付きの出力をフォーマットしたいので、HTML形式で書きました。では、C++でHTMLファイルを作成する最良の方法は何ですか?

些細な方法はとても嫌とエラーが発生しやすいです:

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

だから、私は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); 

任意の同様のプロジェクトがあります:

私は静的にこの構文または同様にC++にHTMLラッパーを入力したいですか?

+2

@tzaman:テンプレートベースのものではなく、静的型付けされたHTMLラッパーが必要です –

+0

テンプレートを除外する要件は不明ですが、tzamanの回答ではC++用の便利なソリューションがたくさんありますすべて。 – casualcoder

+1

私は提供されたリンクをチェックして、インダストリアル抗うつ薬が話していることに近いものを見ることができませんでした。ほとんどすべてHTML/XMLテンプレートから来ています。 –

答えて

3

HTMLとXMLの両方で同じ構文が使用されるため、C++ XMLライブラリ(TinyXMLなど)を使用して、必要なすべてのノードを動的に作成できます。

This pageは、TinyXMLを使用してXML(またはあなたの場合はHTML)ドキュメントを構築する方法を示しています。

(生成されたファイルの先頭にあるXML宣言を削除するなど)いくつかの手間が必要な場合がありますが、やや簡単にラッパーを作成できると思います。

+0

はい、私は自分のラッパーのベースにXMLを使うことができますが、私はラッパーをまったく書きたくありませんでした。 :)しかし、このラッパーライブラリが存在しないように見える、私は1つを書く... –

関連する問題