html - Go:你会如何 "Pretty Print"/"Prettify"HTML?

标签 html xml xml-parsing go pretty-print

在 Python、PHP 和许多其他语言中,可以转换 html 文档并对其进行“美化”。在 Go 中,使用 MarshIndent 函数可以很容易地为 JSON 和 XML(来自结构/接口(interface))完成此操作。

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

但是,这仅适用于将结构/接口(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>

美化 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

请检查这个包。

谢谢,

敬二

关于html - Go:你会如何 "Pretty Print"/"Prettify"HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21117161/

相关文章:

xslt - 当数据结构未知时排除某些子节点

c++ - 在 C++ 中使用 tiny xml 进行 xml 解析的问题?

html - 触摸点击html元素下的按钮

html - 调整屏幕大小时使菜单(div)缩小

java - 大 XML 文件和 OutOfMemoryError

php - 如何在 javascript 中调用用 php 编写的 Web 服务?

javascript - 动画 toggleClass Display None/Block

javascript - 使用 Javascript 设置正文左边距

java - 如何从不知道其在Java中的级别的xml中获取节点

javascript - 需要帮助使用原始 javascript 解析此 XML 代码