我们有一个带XML的遗留系统,其中XML并不漂亮(即整个文件没有换行符)。
是否有内置/本机方式来实现XML的漂亮打印?如果不是如何实现这一目标?
答案 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