2

试图了解如何在 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"`
}
4

1 回答 1

6

我相信你遇到的问题是xml包没有填充未导出的字段。xml文档说:

因为 Unmarshal 使用反射包,它只能分配给导出的(大写)字段。

您需要做的就是更改groupGroup

type Patch struct { Group string `xml:"group,attr"` }

您在这里有一个工作示例: http ://play.golang.org/p/koSzZr-Bdn

于 2012-11-15T20:38:34.700 回答