xml - Golang xml marshal 追加更深的项目?

标签 xml go marshalling

我在这里举个例子: https://www.socketloop.com/tutorials/golang-create-new-xml-file

如果它在 Staff 之后更深一层怎么办?

type Staff struct {
XMLName xml.Name `xml:"staff"`
ID int `xml:"id"`
FirstName string `xml:"firstname"`
LastName string `xml:"lastname"`
UserName string `xml:"username"`
Thing Thing `xml:"thing"`
}

我将如何追加?我试过这样的事情:

v.Staffs = append(v.Staffs, Staff{ID: 108, FirstName: "Jennifer", LastName: "Loh", UserName: "jenniferloh", Thing.tape: "scotch"})

但是只使两个循环迭代的语句有效并且很丑陋:

v.Staffs = append(v.Staffs, Staff{ID: 108, FirstName: "Jennifer", LastName:    "Loh", UserName: "jenniferloh"})

v.Staffs.Thing[i] = append(v.Staffs.Thing, Thing{scotch: "tape"})

有更好的方法吗?谢谢。

最佳答案

type Thing struct {
    stuff string `xml:"stuff"`
}

type Staff struct {
    XMLName xml.Name `xml:"staff"`
    ID int `xml:"id"`
    FirstName string `xml:"firstname"`
    LastName string `xml:"lastname"`
    UserName string `xml:"username"`
    Thing Thing `xml:"thing"`
}

stuff := Thing{Stuff: "120"}
v.Staffs = append(v.Staffs, Staff{ID: 108, FirstName: "Jennifer", LastName: "Loh", UserName: "jenniferloh", Thing: stuff})

关于xml - Golang xml marshal 追加更深的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29441029/

相关文章:

python - 如何使用 XPath 和 Scrapy 选择特定类型的 URL

go - 有没有我们会求助于进程而不是 goroutine 的情况?

go - chans 和 waitgroups 的问题

go - 如何构建程序作为测试的一部分

c# - 将 C# 引用传递给 C++ 指针并返回

java - 使用 JAXB 仅编码选定的字段

java - 如何解析具有相同标签名称的嵌套 xml 标签

java - XML 中的串联

c# - 使用命名空间别名/前缀的 XmlReader 查询问题

c# - 将具有固定大小数组的 C++ 结构编码到 C# 中