猿问

我可以将 Go 的 xml.Unmarshall 用于有序多态类型吗?

我想用 Go 解析和序列化 xml,但看起来 Marshall/Unmarshall 只适用于结构化数据,而不适用于有序指令。我想做这样的事情:


type Play struct {

    loops uint16

    // Body of element is file name

}


type Say struct {

    loops uint16

    voice string

}


func (p *Play) Execute() (err error) {

    // Play the file

}


xml := `<Root>

    <Say>Playing file</Say>

    <Play loops="2">https://host/somefile.mp3</Play>

    <Say>Done playing</Say>

</Root>`

我想接受它并最终得到其中的一部分,我可以在上面运行方法。


for _, instruction := range actions {

    instruction.Execute()

}

我怎样才能做到这一点Unmarshall?


编辑:也许我可以Decoder根据标签名称使用循环遍历和解组每个?


慕容708150
浏览 185回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答