为XML字符串添加正确的缩进

时间:2014-05-28 23:52:53

标签: xml go

我们有一个带XML的遗留系统,其中XML并不漂亮(即整个文件没有换行符)。

是否有内置/本机方式来实现XML的漂亮打印?如果不是如何实现这一目标?

1 个答案:

答案 0 :(得分:4)

您可以使用xml.MarshalIndent,例如:

package main

type xmldoc struct { ........ fields ...... }

func main() {
    var doc xmlDoc
    err := xml.Unmarshal([]byte(xml-data), &doc)
    if err != nil {
        fmt.Printf("error: %v", err)
        return
    }
    out, err := xml.MarshalIndent(doc, "", "\t")
    if err != nil {
        fmt.Printf("error: %v", err)
        return
    }
    fmt.Println(out)
}

或者从命令行,您始终可以使用xmlint

$ xmllint --format --recover file.xml > formatted.xml

或批量检查Format all XML files in a directory and save them in a subdirectory