如何在Golang中用div将每行包装起来?

如何在Golang中用div将每行包装起来?,go,Go,我有一段文字 我想用div把每一行都包起来 例如,如果文本字符串如下所示 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam eget lectus porta metus aliquam tincidunt sed vel enim. <div>Lorem ipsum dolor sit amet,</div> <div>consectetur adipiscing elit.&

我有一段文字

我想用div把每一行都包起来

例如,如果文本字符串如下所示

Lorem ipsum dolor sit amet, 
consectetur adipiscing elit. 

Nam eget lectus porta metus aliquam tincidunt sed vel enim.
<div>Lorem ipsum dolor sit amet,</div> 
<div>consectetur adipiscing elit.</div> 
<div><br/></div>
<div>Nam eget lectus porta metus aliquam tincidunt sed vel enim.</div>
那么我想这样包装它

Lorem ipsum dolor sit amet, 
consectetur adipiscing elit. 

Nam eget lectus porta metus aliquam tincidunt sed vel enim.
<div>Lorem ipsum dolor sit amet,</div> 
<div>consectetur adipiscing elit.</div> 
<div><br/></div>
<div>Nam eget lectus porta metus aliquam tincidunt sed vel enim.</div>
Lorem ipsum door sit amet,
献祭精英。

但是,我们选择了一条通往天堂的道路。
有人能告诉我什么是正确的方法吗


谢谢

您可以使用
bytes.Buffer
bufio.NewScanner
,如以下工作示例代码:

主程序包
输入“fmt”
导入“字符串”
输入“bufio”
导入“字节”
func main(){
r:=strings.NewReader(`Lorem ipsum dolor sit amet,
献祭精英。
不,不,不,不,不,不,不
buf:=&bytes.Buffer{}
扫描器:=bufio.NewScanner(r)
对于scanner.Scan(){
s:=scanner.Text()
如果len=0{
s=`
` } buf.WriteString(`s+` `) } fmt.Println(buf.String()) }
输出:

<div>Lorem ipsum dolor sit amet,</div>
<div>consectetur adipiscing elit.</div>
<div><br/></div>
<div>Nam eget lectus porta metus aliquam tincidunt sed vel enim.</div>
<div>Lorem ipsum dolor sit amet,</div>
<div>consectetur adipiscing elit.</div>
<div><br/></div>
<div>Nam eget lectus porta metus aliquam tincidunt sed vel enim.</div>
与此工作示例代码类似:

主程序包
输入“fmt”
导入“字节”
导入“html/模板”
导入“字符串”
func main(){
r:=[]字符串{`Lorem ipsum dolor sit amet,`,
`奉献精英,
``,
`不,不,我选择了一条通往天堂的路
buf:=&bytes.Buffer{}
t:=template.Must(template.New(“template”).Parse(“{{range.}}{{}}}\n{{{end}}”))
t、 执行(buf,r)
s:=buf.String()
s=字符串。替换(s,`,`
`,-1) fmt.Println(s) }
输出:

<div>Lorem ipsum dolor sit amet,</div>
<div>consectetur adipiscing elit.</div>
<div><br/></div>
<div>Nam eget lectus porta metus aliquam tincidunt sed vel enim.</div>
<div>Lorem ipsum dolor sit amet,</div>
<div>consectetur adipiscing elit.</div>
<div><br/></div>
<div>Nam eget lectus porta metus aliquam tincidunt sed vel enim.</div>
Lorem ipsum door sit amet,
献祭精英。

但是,我们选择了一条通往天堂的道路。
您可以使用
bytes.Buffer
bufio.NewScanner
,如以下工作示例代码:

主程序包
输入“fmt”
导入“字符串”
输入“bufio”
导入“字节”
func main(){
r:=strings.NewReader(`Lorem ipsum dolor sit amet,
献祭精英。
不,不,不,不,不,不,不
buf:=&bytes.Buffer{}
扫描器:=bufio.NewScanner(r)
对于scanner.Scan(){
s:=scanner.Text()
如果len=0{
s=`
` } buf.WriteString(`s+` `) } fmt.Println(buf.String()) }
输出:

<div>Lorem ipsum dolor sit amet,</div>
<div>consectetur adipiscing elit.</div>
<div><br/></div>
<div>Nam eget lectus porta metus aliquam tincidunt sed vel enim.</div>
<div>Lorem ipsum dolor sit amet,</div>
<div>consectetur adipiscing elit.</div>
<div><br/></div>
<div>Nam eget lectus porta metus aliquam tincidunt sed vel enim.</div>
与此工作示例代码类似:

主程序包
输入“fmt”
导入“字节”
导入“html/模板”
导入“字符串”
func main(){
r:=[]字符串{`Lorem ipsum dolor sit amet,`,
`奉献精英,
``,
`不,不,我选择了一条通往天堂的路
buf:=&bytes.Buffer{}
t:=template.Must(template.New(“template”).Parse(“{{range.}}{{}}}\n{{{end}}”))
t、 执行(buf,r)
s:=buf.String()
s=字符串。替换(s,`,`
`,-1) fmt.Println(s) }
输出:

<div>Lorem ipsum dolor sit amet,</div>
<div>consectetur adipiscing elit.</div>
<div><br/></div>
<div>Nam eget lectus porta metus aliquam tincidunt sed vel enim.</div>
<div>Lorem ipsum dolor sit amet,</div>
<div>consectetur adipiscing elit.</div>
<div><br/></div>
<div>Nam eget lectus porta metus aliquam tincidunt sed vel enim.</div>
Lorem ipsum door sit amet,
献祭精英。

但是,我们选择了一条通往天堂的道路。
对于从一段行生成HTML代码片段的部分,您应该使用以下代码,它负责正确转义HTML

package main

import (
    "html/template"
    "os"
)

func main() {
    data := []string{
        "first",
        "second",
        "<style>body{background-color:lime;}</style>",
        "<script>alert('evil')</script>",
    }
    htmlTemplate := "{{range .}}<div>{{.}}</div>\n{{end}}"

    tmpl := template.Must(template.New("").Parse(htmlTemplate))
    tmpl.Execute(os.Stdout, data)
}
主程序包
进口(
“html/模板”
“操作系统”
)
func main(){
数据:=[]字符串{
“第一”,
“第二”,
“主体{背景色:石灰;}”,
“警惕(‘邪恶’)”,
}
htmlTemplate:=“{{range.}}{{}}\n{{end}”
tmpl:=template.Must(template.New(“”).Parse(htmlTemplate))
执行(os.Stdout,数据)
}

对于从一段行生成HTML代码片段的部分,您应该使用以下代码,它负责正确转义HTML

package main

import (
    "html/template"
    "os"
)

func main() {
    data := []string{
        "first",
        "second",
        "<style>body{background-color:lime;}</style>",
        "<script>alert('evil')</script>",
    }
    htmlTemplate := "{{range .}}<div>{{.}}</div>\n{{end}}"

    tmpl := template.Must(template.New("").Parse(htmlTemplate))
    tmpl.Execute(os.Stdout, data)
}
主程序包
进口(
“html/模板”
“操作系统”
)
func main(){
数据:=[]字符串{
“第一”,
“第二”,
“主体{背景色:石灰;}”,
“警惕(‘邪恶’)”,
}
htmlTemplate:=“{{range.}}{{}}\n{{end}”
tmpl:=template.Must(template.New(“”).Parse(htmlTemplate))
执行(os.Stdout,数据)
}

文本是存储在变量中还是存储在文件中?你试过什么?@DavidCullen它存储在一个变量中。答案很有帮助。存储在变量或文件中的文本是什么?你试过什么?@DavidCullen它存储在一个变量中。答案很有帮助。谢谢