Go - 如何使用切片将 XML 解组到容器结构中

我有一个 XML 结构,它本质上包含一个节点数组,这些节点应该反序列化为一个简单的 go 结构的切片,但它不起作用。这是我正在使用的代码(评论显示了我的期望):


package main


import "fmt"

import "encoding/xml"


func main() {

    c := Conversation{}

    xml.Unmarshal(raw, &c)

    fmt.Println(len(c.Dialog))    // expecting 2, not 0

    fmt.Println(c.Dialog[0].Text) // expecting "Hi", not a panic

}


var raw = []byte(`<conversation>

    <message>

        <text>Hi</text>

    </message>

    <message>

        <text>Bye</text>

    </message>

</conversation>`)


type Conversation struct {

    Dialog []Message `xml:"conversation"`

}


type Message struct {

    XMLName xml.Name `xml:"message"`

    Text    string   `xml:"text"`

}

为什么这不起作用?


游乐场:http : //play.golang.org/p/a_d-nhcfoP


饮歌长啸
浏览 201回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go