在golang中,有时候需要生成带CDATA标识的xml值,例如这种:
<?xml version="1.0"?>
<xml>
<to_User>
<![CDATA[userId]]>
</to_User>
</xml>
生成的代码如下:
package main
import (
"encoding/xml"
"log"
)
func main() {
type CDATA struct {
Text string `xml:",cdata"`
}
type TextMsg struct {
XMLName xml.Name `xml:"xml"`
ToUserName CDATA `xml:"to_User"`
}
msg := TextMsg{
ToUserName: CDATA{"userId"},
}
xmlStr, err := xml.Marshal(msg)
if err != nil {
log.Printf("generate xml err:%s, xml param:%+v", err, msg)
}
log.Printf("%s, ", xmlStr)
}