Google开源html模板库ctemplate的完整使用示例

简介:

 ctemplate是Google开源的一个C++版本html模板替换库。有了它,在C++代码中操作html模板是一件非常简单和高效的事。通过本文,即可掌握对它的简单使用。

 
示例html模板文件example.htm内容如下:
 
<html>
<head>
<title>ctemplate示例模板</title>
</head>
 
<body>
    `table1_name`
    <table>
        {{#TABLE1}}
        <tr>
            <td>`field1`</td>
            <td>`field2`</td>
            <td>`field3`</td>
        </tr>
        {{/TABLE1}}
    </table>
</body>
</html>
 
模板中的变量使用{{}}括起来,
而{{#TABLE1}}和{{/TABLE1}}表示一个循环。
 
C++代码x.cpp文件内容如下:
#include <ctemplate/template.h>
#include <stdio.h>
#include <string>
 
int main()
{
    ctemplate::TemplateDictionary dict("example");
    dict.SetValue("table1_name", "example");
    
    // 为节省篇幅,这里只循环一次
    for (int i=0; i<2; ++i)
    {
        ctemplate::TemplateDictionary* table1_dict;
        table1_dict = dict.AddSectionDictionary("TABLE1");
        table1_dict->SetValue("field1", "1");
        table1_dict->SetValue("field2", "2");
        
        // 这里有点类似于printf
        table1_dict->SetFormattedValue("field3", "%d", i);
    }
    
    std::string output;
    ctemplate::Template* tpl;
    tpl = ctemplate::Template::GetTemplate("example.htm", ctemplate::DO_NOT_STRIP);
    tpl->Expand(&output, &dict);
    printf("%s\n", output.c_str());
    
    return 0;
}
 
编译:
g++ -g -o x x.cpp ./lib/libctemplate_nothreads.a -I./include
执行x输出内容如下:
<html>
<head>
<title>ctemplate示例模板</title>
</head>
 
<body>
    example
    <table>
        
        <tr>
            <td>1</td>
            <td>2</td>
            <td>0</td>
        </tr>
        
        <tr>
            <td>1</td>
            <td>2</td>
            <td>1</td>
        </tr>
        
    </table>
</body>
</html>




    本文转自eyjian 51CTO博客,原文链接:http://blog.51cto.com/mooon/964448 ,如需转载请自行联系原作者


相关文章
|
10月前
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
298 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
10月前
|
开发者 CDN
阿里云CDN边缘脚本示例实现/?p123重定向/p/123.html
本文介绍了如何通过EdgeScript实现URL重定向,将`http://www.example.com/?p123`重定向到`http://www.example.com/p/123.html`。使用捕获请求URI中的参数并进行重写,具体代码和内置变量参考阿里云CDN开发者文档。示例代码展示了关键的实现步骤。
204 8
|
前端开发 JavaScript
pyquery:一个灵活方便的 HTML 解析库
pyquery:一个灵活方便的 HTML 解析库
155 1
|
存储 数据库 Android开发
🔥Android Jetpack全解析!拥抱Google官方库,让你的开发之旅更加顺畅无阻!🚀
【7月更文挑战第28天】在Android开发中追求高效稳定的路径?Android Jetpack作为Google官方库集合,是你的理想选择。它包含多个独立又协同工作的库,覆盖UI到安全性等多个领域,旨在减少样板代码,提高开发效率与应用质量。Jetpack核心组件如LiveData、ViewModel、Room等简化了数据绑定、状态保存及数据库操作。引入Jetpack只需在`build.gradle`中添加依赖。例如,使用Room进行数据库操作变得异常简单,从定义实体到实现CRUD操作,一切尽在掌握之中。拥抱Jetpack,提升开发效率,构建高质量应用!
513 4
|
前端开发 JavaScript
HTML 全局属性介绍及示例
HTML 全局属性介绍及示例
170 2
|
Java 数据库连接
提升编程效率的利器: 解析Google Guava库之IO工具类(九)
提升编程效率的利器: 解析Google Guava库之IO工具类(九)
HTML表格的跨行与跨列:《红楼梦》人物与小学课表示例
HTML表格的跨行与跨列:《红楼梦》人物与小学课表示例
185 1
|
JavaScript 前端开发 UED
【源码分享】简单的404 HTML页面示例,该页面在加载时会等待2秒钟,然后自动重定向到首页
【源码分享】简单的404 HTML页面示例,该页面在加载时会等待2秒钟,然后自动重定向到首页
1673 0
|
缓存 Java Maven
深入解析Google Guava库与Spring Retry重试框架
深入解析Google Guava库与Spring Retry重试框架
|
监控 安全 算法
提升编程效率的利器: 解析Google Guava库之RateLimiter优雅限流(十)
提升编程效率的利器: 解析Google Guava库之RateLimiter优雅限流(十)

推荐镜像

更多