Go:你会如何“漂亮打印”/“Prettify”HTML?

Python,PHP和许多其他语言中,可以转换html文档并“美化”它.在Go中,使用MarshIndent函数可以非常轻松地完成JSON和XML(来自结构/接口).

Go中的XML示例:

http://play.golang.org/p/aBNfNxTEG1

package main

import (
    "encoding/xml"
    "fmt"
    "os"
)

func main() {
    type Address struct {
        City,State string
    }
    type Person struct {
        XMLName   xml.Name `xml:"person"`
        Id        int      `xml:"id,attr"`
        FirstName string   `xml:"name>first"`
        LastName  string   `xml:"name>last"`
        Age       int      `xml:"age"`
        Height    float32  `xml:"height,omitempty"`
        Married   bool
        Address
        Comment string `xml:",comment"`
    }

    v := &Person{Id: 13,FirstName: "John",LastName: "Doe",Age: 42}
    v.Comment = " Need more details. "
    v.Address = Address{"Hanga Roa","Easter Island"}

    output,err := xml.MarshalIndent(v,"  ","    ")
    if err != nil {
        fmt.Printf("error: %v\n",err)
    }

    os.Stdout.Write(output)
}

但是,这仅适用于将struct / interface转换为[]字节.我想要的是自动转换一串HTML代码和缩进.例:

原始HTML

<!doctype html><html><head>
<title>Website Title</title>
</head><body>
<div class="random-class">
<h1>I like pie</h1><p>It's true!</p></div>
</body></html>

Prettified HTML

<!doctype html>
<html>
    <head>
        <title>Website Title</title>
    </head>
    <body>
        <div class="random-class">
            <h1>I like pie</h1>
            <p>It's true!</p>
        </div>
    </body>
</html>

如何使用字符串完成这项工作?

解决方法

我遇到了同样的问题,我只是通过自己在Go中创建一个HTML格式化包来解决它.

这里是:

GoHTML – HTML formatter for Go

请检查此包裹.

谢谢,

敬事

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些