目前在用go开发一个微信公众号,所以碰到xml转换的问题,类似
这种的微信推送过来的xml数据,要怎么转换为struct类型??
更多评论
类似这么定义:
type CData struct {
Val string `xml:",cdata"`
}
可以参考 studygolang 的相关代码:https://github.com/studygolang/studygolang/blob/master/src/model/wechat_msg.go
我刚试了不行啊 这是代码
type CData struct {
Val string `xml:",cdata"`
}
type EventPush struct {
XMLName xml.Name `xml:"xml"`
ToUserName *CData
FromUserName *CData
CreateTime uint64
MsgType *CData
Event *CData
}
func main() {
var event EventPush
var xmlString = "< ![CDATA[toUser] ]>< ![CDATA[FromUser] ]>123456789< ![CDATA[event] ]>< ![CDATA[subscribe] ]>"
xml.Unmarshal([]byte(xmlString), &event)
fmt.Println(event)
}
打印结果是这样的:{{ xml} 0xc042030300 <nil> 0 <nil> <nil>}