go 1.8 xml解析不支援cdata

stirlingx發表於2017-04-05

go 1.8 xml 解析不支援 cdata, 但是 go1.2 是支援的,這是 bug?

package main

import (
    "encoding/xml"
    "fmt"
    "runtime"
)

type WechatNotifyInfo struct {
    XMLName        xml.Name `xml:"xml"`
    Appid          string `xml:"appid,cdata"`
}

var Text =
    `<xml>
    <appid><![CDATA[wx0f0df4fda4ff1937]]></appid>
    </xml>
    `

func main() {
    fmt.Println("version", runtime.Version())

    msg := &WechatNotifyInfo{}
    err := xml.Unmarshal([]byte(Text), msg)
    if err != nil{
        fmt.Println(err)
    }

    fmt.Println(fmt.Sprintf("%#v", msg))
}

這個是 go1.8 執行結果

version go1.8
xml: invalid tag in field Appid of type main.WechatNotifyInfo: "appid,cdata"
&main.WechatNotifyInfo{XMLName:xml.Name{Space:"", Local:""}, Appid:""}

這個是 go1.2.1 執行結果

version go1.2.1
&main.WechatNotifyInfo{XMLName:xml.Name{Space:"", Local:"xml"}, Appid:"wx0f0df4fda4ff1937"}
更多原創文章乾貨分享,請關注公眾號
  • go 1.8 xml解析不支援cdata
  • 加微信實戰群請加微信(註明:實戰群):gocnio

相關文章