Go:用template.ParseFiles解析xml文件后,第一个“<”成了“<”

时间:2013-07-21 17:28:50

标签: go

我正在尝试使用template.ParseFiles()解析xml文件。

xml是:

<?xml version="1.0" encoding="utf-8"?>
<in2>
    <unique>{{.}}</unique>
    <moe>100%</moe>
</in2>

但在解析之后,第一个<变为&lt;,如下所示:

&lt;?xml version="1.0" encoding="utf-8"?>
<in2>
    <unique>something</unique>
    <moe>100%</moe>
</in2>

如何正确解析xml文件?

这是我的代码:

func in2(w http.ResponseWriter, r *http.Request) {
    w.Header().Set("Content-Type", "text/xml")
    t, err := template.ParseFiles("xml/in2.xml")
    if err != nil {
        fmt.Println(err)
        return
    }
    unique := "something"
    err = t.Execute(w, unique)
    if err != nil {
        fmt.Println(err)
    }
}

1 个答案:

答案 0 :(得分:0)

我不认为html / template理解xml所以xml模板会给它带来问题。如果您需要使用xml,那么http://golang.org/pkg/encoding/xml/包可能会有用。

或者您可以使用不关心xml的文本/模板。使用文本/模板的缺点是它不会被上下文识别,但是html / template也不会理解你的xml的上下文。