欢迎来到cool的博客
7

Music box

Click to Start

点击头像播放音乐
新博客链接

golang解析使用模板到字符串

来自己对golang的掌握也就半壶水,不过我向来认为学习就是一个不断踩坑的过程.只有在实践中才能不断的取得进步.最近在独力编写golang版本的影梭管理面板,其中有个需求就是给用户发送激活邮件,本着尽善尽美的原则,计划提供可编辑的html邮件模板.那么,问题就来了.使用html/template包对html模板进行解析,但是Execute函数是输出到io.Writer,而我需要的是把模板解析结果保存到string类型的变量中,以便直接传送给下一步负责发送邮件的函数使用.
  在网络上查阅资料后得知实现上述要求方法非常简单,只需要设置一个bytes.Buffer,Execute的时候把数据写入到这个缓存器当中,再调用String方法转换成字符串即可.

 

package main

import (

"html/template"

"bytes"

"fmt"

)

type Mail struct {

UserName string

SiteName string

ActiveLink string

}

func main() {

var doc bytes.Buffer

var templateString = "{&#123;.UserName}}你好,您在{&#123;.SiteName}}注册了帐号,请点<a href=\"{&#123;.ActiveLink}}\">击这里激活!</a>"

t := template.New("fieldname example")

t, _ = t.Parse(templateString)

p := Mail{UserName: "Frank",SiteName: "SSP", ActiveLink: "http://xizhimen.com/active/9a32f2"}

t.Execute(&doc,p)

html := doc.String()

fmt.Println(html)

}

返回列表