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

前端之家收集整理的这篇文章主要介绍了Go:你会如何“漂亮打印”/“Prettify”HTML?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Python,PHP和许多其他语言中,可以转换html文档并“美化”它.在Go中,使用MarshIndent函数可以非常轻松地完成JSON和XML(来自结构/接口). @H_404_2@Go中的XML示例:

@H_404_2@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)
}
@H_404_2@但是,这仅适用于将struct / interface转换为[]字节.我想要的是自动转换一串HTML代码和缩进.例:

@H_404_2@原始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>
@H_404_2@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>
@H_404_2@如何使用字符串完成这项工作?

解决方法

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

@H_404_2@GoHTML – HTML formatter for Go

@H_404_2@请检查此包裹.

@H_404_2@谢谢,

@H_404_2@敬事

猜你在找的HTML相关文章