将xml结构写入文件时出错

将xml结构写入文件时出错,xml,struct,go,Xml,Struct,Go,目前,我的控制台输出的格式为[{a}{b}{c}{d}] 我希望将此输出写入一个文件,以代替fmt.Println(a),但每次遇到以下错误时: cannot use a (type []Group) as type []byte in argument to ioutil.WriteFile' or similar cannot use a (`type []Group`) as type `io.Writer` in argument to `fmt.Fprint`: []Group doe

目前,我的控制台输出的格式为
[{a}{b}{c}{d}]

我希望将此输出写入一个文件,以代替
fmt.Println(a)
,但每次遇到以下错误时:

cannot use a (type []Group) as type []byte in argument to ioutil.WriteFile' or similar
cannot use a (`type []Group`) as type `io.Writer` in argument to `fmt.Fprint`:
[]Group does not implement io.Writer (missing Write method)).
是否需要将
[]组
转换为其他类型?我试过
json.Marshall(group)
,但结果都一样

package main

import (
  "fmt"
  "net/http"
  "io/ioutil"
  "encoding/xml"
)

type Bedework struct {
  XMLName xml.Name `xml:"bedework"`
  Groups []Group `xml:"groups>group"`
}

type Group struct {
  Name string `xml:"name"`
}

func main() {
  response, err := http.Get("http://localhost:3000/cal/?noxslt=yes")
  if err != nil {
    fmt.Println("Error opening file:", err)
    return
  } else {
    defer response.Body.Close()

    contents, _ := ioutil.ReadAll(response.Body)

    var b Bedework
    var g []Group
    xml.Unmarshal(contents, &b)
    for _, group := range b.Groups {
        g = append(g, group)
    }
  fmt.Println(g)
  }
}

像这样使用
err,fd:=os.OpenFile(“myfile.txt”,os.O_WRONLY | os.O_TRUNC,0666);fmt.Fprintln(fd,g);fd.Close()
?但我不太明白你的问题:它的标题是“必须使用XML做一些事情”,你的代码示例使用XML做了一些事情,但你基本上会问如何使用
fmt.Println()
写入文件而不是控制台。你能把你的问题尽量缩小吗?如果您想将
g
写入文件,那么XML是完全不相关的。如果您想编写XML,其他一切都是完全无关的。请阅读……你甚至没有向我们展示你失败的代码。我接受了你给我的,并对它进行了轻微的修改,最终它成功了,谢谢!关于XML-抱歉,新的开始,我的Bedework struct正在处理如何提取XML并将其放入[]组,但我现在意识到我没有正确地说出标题。如果你想把你在第一条评论中写的东西作为答案,我可以选择它。编辑你的问题来把答案放进去有什么意义?这有点违背了问题的初衷;fmt.Fprintln(fd,g);fd.Close()?但我不太明白你的问题:它的标题是“必须使用XML做一些事情”,你的代码示例使用XML做了一些事情,但你基本上会问如何使用
fmt.Println()
写入文件而不是控制台。你能把你的问题尽量缩小吗?如果您想将
g
写入文件,那么XML是完全不相关的。如果您想编写XML,其他一切都是完全无关的。请阅读……你甚至没有向我们展示你失败的代码。我接受了你给我的,并对它进行了轻微的修改,最终它成功了,谢谢!关于XML-抱歉,新的开始,我的Bedework struct正在处理如何提取XML并将其放入[]组,但我现在意识到我没有正确地说出标题。如果你想把你在第一条评论中写的东西作为答案,我可以选择它。编辑你的问题来把答案放进去有什么意义?这有点违背了问题的初衷。