文本/模板问题Parse()vs.ParseFiles()

我正在尝试使用text / template包做一些简单的工作。模板顶部给出的示例就是我正在使用的示例。

如何编写“已解析”文件,以便template.ParseFiles()正确读取和执行该文件?

package main


import (

    "text/template"

    "os"

)


type Inventory struct {

    Material string

    Count    uint

}


func main() {

    sweaters := Inventory{"wool", 17}

    tmpl, err := template.New("test").Parse("{{.Count}} items are made of {{.Material}}")

    // tmpl, err := template.New("test").ParseFiles("file.txt")


    if err != nil { panic(err) }

    err = tmpl.Execute(os.Stdout, sweaters)

    if err != nil { panic(err) }

}


/*

Contents of file.txt:

{{.Count}} items are made of {{.Material}}


Error thrown:

panic: template: test:1: "test" is an incomplete or empty template


goroutine 1 [running]:

main.main()

    /tmp/templates/t.go:19 +0x21a


goroutine 2 [syscall]:

created by runtime.main

    /var/tmp/portage/dev-lang/go-1.0.1/work/go/src/pkg/runtime/proc.c:221

*/

我在这里的golang游乐场张贴了此代码的副本



Helenr
浏览 324回答 2
2回答

哈士奇WWW

sweaters := Inventory{"wool", 17}tmpl, err := template.ParseFiles("file.txt")if err != nil {    panic(err)}err = tmpl.ExecuteTemplate(os.Stdout, "file.txt", sweaters)if err != nil {    panic(err)}如果文件很多,可以使用ParseGlob:tmpl, err := template.ParseGlob("*.txt")if err != nil {    panic(err)}err = tmpl.ExecuteTemplate(os.Stdout, "file.txt", sweaters)if err != nil {    panic(err)}err = tmpl.ExecuteTemplate(os.Stdout, "file2.txt", sweaters)if err != nil {    panic(err)}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go