【问题标题】:Add correct indentation to XML string为 XML 字符串添加正确的缩进
【发布时间】:2014-05-28 23:52:52
【问题描述】:

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

有没有一种内置/原生的方式来实现漂亮的 XML 打印?如果不是,如何实现这一目标?

【问题讨论】:

    标签: xml go


    【解决方案1】:

    您可以使用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

    【讨论】:

    • xmldoc 中有哪些字段?您是说我们需要为我们拥有的每种 XML 文件类型创建一个 xmldoc 结构吗?这可能是数千(字面意思)
    • 嗯,是的,这就是 xml 在 go 中的工作方式,或者您可以编写自己的解析器或只使用 xmllint。
    猜你喜欢
    • 2011-01-31
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 2021-03-04
    相关资源
    最近更新 更多