试图了解如何在Go中解组XML。阅读多个示例和stackoverflow问题。我想要的是在系统上安装所有补丁的切片。我甚至无法获得解组的解组,没有错误,只是一个空片。可能做的事情基本上是错误的,提前感谢任何建议。
<probe version="1.3" date="2012-03-26:17:10">
<properties>
</properties>
<patches group="server">
<file name="5002012-02-09CR00000server.jar"/>
<file name="5002012-02-17CR00001server.jar"/>
</patches>
<patches group="client">
<file name="5002012-02-09CR00000client.jar"/>
<file name="5002012-02-17CR00001client.jar"/>
</patches>
</probe>
type Patch struct {
group string `xml:"group,attr"`
}
type Probe struct {
XMLName xml.Name `xml"probe"`
Patches []Patch `xml:"patches"`
}
答案 0 :(得分:6)
我认为你遇到的问题是xml
包没有填充未导出的字段。 xml文档说:
因为Unmarshal使用反射包,它只能分配给导出的(大写)字段。
您需要做的就是将group
更改为Group
:
type Patch struct { Group string `xml:"group,attr"` }
这里有一个有效的例子: http://play.golang.org/p/koSzZr-Bdn