3

I am trying to parse a xml file using template.ParseFiles().

The xml is :

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

But after parsing it, the first < became &lt;, like this :

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

How can I parse the xml file correctly?

This is my code :

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)
    }
}
4

1 回答 1

1

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

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

于 2013-07-22T02:49:29.940 回答