2

Go で XML を非整列化する方法を理解しようとしています。複数の例とスタックオーバーフローの質問を読んでください。私が欲しいのは、システムにインストールされたすべてのパッチを含むスライスです。パッチを非整列化することさえできず、エラーはなく、空のスライスだけです。おそらく基本的に何か間違ったことをしているでしょう。何か提案があれば事前に感謝します。

<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 は、reflect パッケージを使用するため、エクスポートされた (大文字の) フィールドにのみ割り当てることができます。

あなたがする必要があるのは、に変更することだけgroupですGroup

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

ここに実例があります: http://play.golang.org/p/koSzZr-Bdn

于 2012-11-15T20:38:34.700 に答える