将XML代码写入Go中的XML文件

前端之家收集整理的这篇文章主要介绍了将XML代码写入Go中的XML文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个打印行代码的脚本,但我需要它来编写一个新的 XML文件,然后将 XML代码写入文件而不是打印它.

这是打印XML代码函数

func processTopic(id string,properties map[string][]string) {
    fmt.Printf("<card entity=\"%s\">\n",id)
    fmt.Println("  <facts>")
    for k,v := range properties {
        for _,value := range v {
            fmt.Printf("    <fact property=\"%s\">%s</fact>\n",k,value)
        }
    }
    fmt.Println("  </facts>")
    fmt.Println("</card>")
}

如何让它编写XML文件,然后将代码写入该XML文件

解决方法

添加到bgp的(1)正确答案;通过更改函数以将io.Writer作为参数,您可以将XML输出到实现 io.Writer接口的任何类型的输出.

func processTopic(w io.Writer,id string,properties map[string][]string) {
    fmt.Fprintf(w,"<card entity=\"%s\">\n",id)
    fmt.Fprintln(w,"  <facts>")
    for k,value := range v {
            fmt.Fprintf(w,"    <fact property=\"%s\">%s</fact>\n",value)
        }
    }
    fmt.Fprintln(w,"  </facts>")
    fmt.Fprintln(w,"</card>")
}

打印到屏幕(标准输出):

processTopic(os.Stdout,id,properties)

写入文件(代码取自bgp的答案):

f,err := os.Create("out.xml") // create/truncate the file
if err != nil { panic(err) } // panic if error
defer f.Close() // make sure it gets closed after
processTopic(f,properties)

猜你在找的XML相关文章