加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 23:26:56 所属栏目:百科 来源:网络整理
导读:我有一个打印行代码的脚本,但我需要它来编写一个新的 XML文件,然后将 XML代码写入文件而不是打印它. 这是打印XML代码的函数 func processTopic(id string,properties map[string][]string) { fmt.Printf("card entity="%s"n",id) fmt.Println(" facts") f
我有一个打印行代码的脚本,但我需要它来编写一个新的 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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读