首页 >后端开发 >Golang >如何防止 GoLang 模板中的 HTML 转义?

如何防止 GoLang 模板中的 HTML 转义?

Linda Hamilton
Linda Hamilton原创
2024-11-02 10:47:311131浏览

How to Prevent HTML Escaping in GoLang Templates?

将 HTML 插入 GoLang 模板

在 GoLang 中填充 HTML 模板时,遇到 HTML 字符被转义和错误添加的问题并不罕见。为了解决这个问题,了解作为字符串传递数据和作为 template.HTML 传递数据之间的区别至关重要。

默认情况下,当数据作为字符串传递时,GoLang 模板将转义 HTML 字符。这会导致您所描述的意外输出。为了防止这种情况,正确的方法是将 HTML 内容作为 template.HTML 传递。此数据类型专门设计用于处理 HTML 内容而无需转义。

以下是如何使用 template.HTML 的示例:

<code class="go">package main

import (
    "html/template"
    "os"
)

func main() {
    tpl := template.Must(template.New("main").Parse(`{{define "T"}}{{.Html}}{{.String}}{{end}}`))
    tplVars := map[string]interface{} {
        "Html": template.HTML("<p>Paragraph</p>"),
        "String": "<p>Paragraph</p>",
    }
    tpl.ExecuteTemplate(os.Stdout, "T", tplVars)
}</code>

通过将 HTML 内容作为 template.HTML 传递,输出将按预期呈现,并正确显示 HTML 字符。这种方法可确保您的 HTML 模板准确填充,而不会出现任何不需要的转义。

以上是如何防止 GoLang 模板中的 HTML 转义?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn